|
@@ -20,7 +20,7 @@
|
|
<el-button text circle @click="handleDelete(i)">
|
|
<el-button text circle @click="handleDelete(i)">
|
|
<Icon icon="ep:close" />
|
|
<Icon icon="ep:close" />
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button v-if="list.length >= 2" @click="handleItemAdd(i)" text><Icon class="mr-5px" icon="ep:plus" />并且满足</el-button>
|
|
|
|
|
|
+ <el-button v-if="list.length >= 2" @click="handleItemAdd(i, val)" text><Icon class="mr-5px" icon="ep:plus" />并且满足</el-button>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
<template v-else>
|
|
<template v-else>
|
|
@@ -44,7 +44,7 @@
|
|
<el-button text circle @click="handleDelete(index, val.children, i)">
|
|
<el-button text circle @click="handleDelete(index, val.children, i)">
|
|
<Icon icon="ep:close" />
|
|
<Icon icon="ep:close" />
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button v-if="index === 0" @click="handleItemAdd(index, val.children)" text><Icon class="mr-5px" icon="ep:plus" />并且满足</el-button>
|
|
|
|
|
|
+ <el-button v-if="index === 0" @click="handleItemAdd(index, _val, val.children)" text><Icon class="mr-5px" icon="ep:plus" />并且满足</el-button>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
<div class="relation">
|
|
<div class="relation">
|
|
@@ -111,9 +111,8 @@ const handleAdd = () => {
|
|
// 删除筛选条件
|
|
// 删除筛选条件
|
|
const handleDelete = (index, arr, parentIndex) => {
|
|
const handleDelete = (index, arr, parentIndex) => {
|
|
if (arr && arr.length) {
|
|
if (arr && arr.length) {
|
|
- // 当children长度为2时变回一级
|
|
|
|
if (arr.length === 2) {
|
|
if (arr.length === 2) {
|
|
- list.value[parentIndex] = { key: '', operation: '', value: '', type: 'EXPRESSION', children: [] }
|
|
|
|
|
|
+ list.value[parentIndex] = arr[index]
|
|
return
|
|
return
|
|
}
|
|
}
|
|
arr.splice(index, 1)
|
|
arr.splice(index, 1)
|
|
@@ -137,13 +136,13 @@ const handleActive = (k, arr, parentVal) => {
|
|
}
|
|
}
|
|
|
|
|
|
// 并且满足
|
|
// 并且满足
|
|
-const handleItemAdd = (i, arr) => {
|
|
|
|
|
|
+const handleItemAdd = (i, val, arr) => {
|
|
const obj = { key: '', operation: '', value: '', type: 'EXPRESSION', children: [] }
|
|
const obj = { key: '', operation: '', value: '', type: 'EXPRESSION', children: [] }
|
|
const item = {
|
|
const item = {
|
|
type: 'RELATION',
|
|
type: 'RELATION',
|
|
operation: 'AND',
|
|
operation: 'AND',
|
|
relationList: cloneDeep(relationList.value),
|
|
relationList: cloneDeep(relationList.value),
|
|
- children: [cloneDeep(obj), cloneDeep(obj)]
|
|
|
|
|
|
+ children: [val, cloneDeep(obj)]
|
|
}
|
|
}
|
|
if (arr && arr.length) return arr.push(cloneDeep(obj))
|
|
if (arr && arr.length) return arr.push(cloneDeep(obj))
|
|
list.value.splice(i, 1, item)
|
|
list.value.splice(i, 1, item)
|
|
@@ -179,8 +178,8 @@ watch(
|
|
|
|
|
|
const result = {}
|
|
const result = {}
|
|
const getQuery = () => {
|
|
const getQuery = () => {
|
|
- // const check = list.value.every(e => checkObjectValues(e))
|
|
|
|
- // if (!check) return message.warning('请将条件中的项填写完整')
|
|
|
|
|
|
+ const check = list.value.every(e => checkObjectValues(e))
|
|
|
|
+ if (!check) return message.warning('请将条件中的项填写完整')
|
|
|
|
|
|
if (list.value.length === 1) result.value = list.value[0]
|
|
if (list.value.length === 1) result.value = list.value[0]
|
|
else result.value = { ...query.value, children: list.value }
|
|
else result.value = { ...query.value, children: list.value }
|