diff --git a/src/components/queryBuilder/Order.vue b/src/components/queryBuilder/Order.vue index f633b42..a1d5332 100644 --- a/src/components/queryBuilder/Order.vue +++ b/src/components/queryBuilder/Order.vue @@ -8,6 +8,10 @@ :table="table" :columns="columns" :alreadySorted="alreadySorted" + :notFirst="index != 0" + :notLast="index != value.length - 1" + @up="changeSort('up', index)" + @down="changeSort('down', index)" @update:model-value="($event) => (value[index] = $event)" @remove="removeAtIndex(index)" /> @@ -82,6 +86,12 @@ export default defineComponent({ removeAtIndex(index: number) { this.value.splice(index, 1); }, + changeSort(dir: "up" | "down", index: number) { + const swapIndex = dir === "up" ? index - 1 : index + 1; + if (swapIndex >= 0 && swapIndex < this.value.length) { + [this.value[index], this.value[swapIndex]] = [this.value[swapIndex], this.value[index]]; + } + }, }, }); diff --git a/src/components/queryBuilder/OrderStructure.vue b/src/components/queryBuilder/OrderStructure.vue index cd15f86..9b57fd4 100644 --- a/src/components/queryBuilder/OrderStructure.vue +++ b/src/components/queryBuilder/OrderStructure.vue @@ -1,5 +1,9 @@