於el-dialog(彈出視窗顯示)使用Sortablejs 在element進行表格(el-table)無法拖曳排序

如標題,
我想在el-dialog內進行表格拖曳排序,
如果是放在一般畫面的話可以進行拖曳的,
表示我是有把sortablejs正確引入
但如果將表格放在el-dialog上時,
拖曳排序卻會失效,
以console來看,
我是確實有選擇到正確的表格,
但還是無法解決問題,
求高人指點...
在此附上代碼

<template>
    <div>
        <el-button @click="dialogFormVisible = true">按鈕</el-button>


        <el-dialog  :visible.sync="dialogFormVisible">
            <el-table row-key="date" ref="table" border :data="tableData" style="width: 100%" id="AA">
                <el-table-column prop="date" label="日期" width="180">
                </el-table-column>
                <el-table-column prop="name" label="姓名" width="180">
                </el-table-column>
                <el-table-column prop="address" label="地址">
                </el-table-column>
            </el-table>
        </el-dialog>
    </div>

</template>

<script>
    import Sortable from 'sortablejs'

    export default {
        name: "inspection",//檢查
        data(){
            return{
                dialogFormVisible: false,
                tableData: [{
                    date: '2016-05-02',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1518 弄'
                }, {
                    date: '2016-05-04',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1517 弄'
                }, {
                    date: '2016-05-01',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1519 弄'
                }, {
                    date: '2016-05-03',
                    name: '王小虎',
                    address: '上海市普陀区金沙江路 1516 弄'
                }]
            }
        },
        mounted() {
            const el = document.querySelectorAll('.el-dialog .el-table__body-wrapper > table > tbody')[0]
            const self = this
            Sortable.create(el, {
                onEnd({ newIndex, oldIndex }) {
                    const targetRow = self.tableData.splice(oldIndex, 1)[0]
                    self.tableData.splice(newIndex, 0, targetRow)
                }
            })
        }
    }
</script>

<style scoped>

</style>
阅读 5.6k
3 个回答

加个父类,从父类的class开始找

const tbody = document.querySelector('.demo .el-table__body-wrapper tbody')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题