Чтобы реализовать сортируемую таблицу, это немного сложно, у вас могут быть или не быть все ресурсы для достижения этого, в дополнение к этому у этих компонентов много проблем со стилем.

В прошлом я сталкивался с несколькими проблемами с sortable-table и нашел решение для их решения.

VueSortableTable — это компонент Vue 3, который использует Sortable для выполнения задачи. Вы можете очень легко подключить VueSortableTable к своему проекту и начать работу.

Подробная документация:
https://github.com/shashikant-wagh/vue-sortable-table

Установка:
npm install vue-sortable-table

Использование:
import VueSortableTable from 'vue-sortable-table'

Пример:

<template>
    <vue-sortable-table
        v-model="records"
        :columns="columns"
        :actions="actions"
        :paginate="paginate"
        :tableClass="'table table-bordered table-responsive'"
        @pageChanged="api.page = $event"
    >
        <template v-slot:table-header>
            <div class="row">
                <div class="col">
                    <h3>Users Table</h3>
                </div>
            </div>
        </template>
        <template v-slot:table-body="{showColumn, showAction}">
            <tr
                v-for="(record, index) in records"
                class="table-row"
            >
                <td
                    v-if="showAction('edit')"
                    class="drag">
                    <a href="">Edit</a>
                </td>
                <td v-if="showAction('delete')">
                    <a href="">Delete</a>
                </td>
                <td
                    v-if="showColumn('Id')"
                    class="text-center"
                >
                    {{ record.id }}
                </td>
                <td v-if="showColumn('First Name')"> 
                    {{ record.first_name }} 
                </td>
                <td v-if="showColumn('Last Name')"> 
                    {{ record.last_name }} 
                </td>
                <td v-if="showColumn('Email')"> 
                    {{ record.email }} 
                </td>
            </tr>
        </template>
    </vue-sortable-table>
</template>
<script>
import VueSortableTable from 'vue-sortable-table';
export default {
    components: {VueSortableTable},
    data() {
        return {
            columns: [
                'Id',
                'First Name',
                'Last Name',
                'Email',
            ],
            actions: {
                'edit': true,
                'delete': true,
            },
            paginate: {
                page: 1,
                limit: 6,
                total: 10,
            },
            records: [{...}, {...}, {...}],
        }
    }
}
</script>

Пожалуйста, не забудьте проверить VueDatatableEle и проверить его в своем следующем проекте, а также оставить комментарий о своем опыте.