最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 关于使用Sortable来实现表格的拖拽遇到的问题

    正文概述 掘金(zaco)   2021-07-27   624

    引入

    按需引入

    方法一:

    1.首先是拖拽完成之后需要重新调用列表的接口

    关于使用Sortable来实现表格的拖拽遇到的问题

    2.el-table里面绑定一个key,在刷新数据的时候取反

    关于使用Sortable来实现表格的拖拽遇到的问题

    方法二:

    异步再次执行一次表格数据的赋值,推荐使用这种,看似呆板,但是易懂!!!

    关于使用Sortable来实现表格的拖拽遇到的问题

    关于使用Sortable来实现表格的拖拽遇到的问题

    注意:

    这里排序会调用一个接口,我们不要忽略了接口调用失败的数据处理,不然数据的顺序会改变与后台的数据不一致

    关于使用Sortable来实现表格的拖拽遇到的问题

    代码

    <template>
        <div class="department-manu">
    
            <el-table
                ref="itsmDataTable"
                :data="tableData"
                stripe
                style="width: 100%; font-size: 16px;"
                :row-style="{'font-size':'14px','height':'46px'}"
            >
                <el-table-column align="center" type="selection" width="50"></el-table-column>
                <el-table-column align="center" type="index" width="70" label="序号"></el-table-column>
                <el-table-column align="center" prop="DEPARTNAME" label="部门名称"></el-table-column>
                <el-table-column align="center" prop="DEPARTDESC" label="部门描述"></el-table-column>
                <el-table-column align="center" prop="TRUENAME" label="创建人"></el-table-column>
                <el-table-column align="center" prop="CRTIME" label="创建时间" width="165"></el-table-column>
        </div>
    </template>
    <script>
    import Sortable from 'sortablejs';
    export default {
        name: 'DepartmentMenu',
        data() {
            return {
                tableData: [], // 部门列表
            };
        },
        created() {
            this.getTableData();
        },
        mounted() {
            this.rowDrop();
        },
        methods: {
            /**
             * [getTableData description]获取部门列表
             *
             * @param   {[type]}  str  [str description]
             *
             * @return  {[type]}       [return description]
             */
            getTableData(str = '') {
                if (JSON.stringify(this.$route.query) !== '{}') {
                    this.$axios.get('***********', {
                        params: {***********},
                    }).then((data) => {
                        const msg = data.DATA || data;
                        // 防止拖拽排序抖动
                        const copyData = JSON.parse(JSON.stringify(msg));
                        this.tableData = [];
                        this.$nextTick(() => {
                            this.tableData = copyData;
                        });
                        if (!this.$route.query.parentid || this.$route.query.parentid * 1 === 0) {
                            this.$emit('refresh');
                        }
                    });
                } else {
                    this.tableData = [];
                }
            },
    
    
    
    
            /**
             * [拖动排序]]
             *
             * @return  {[type]}  [return description]
             */
            rowDrop() {
                const tbody = document.querySelector('.el-table__body-wrapper tbody');
                this.sortable = Sortable.create(tbody, {
                    onEnd: evt => { // 拖动结束时触发,我在这里调用接口,改变后台的排序
                        if (evt.oldIndex !== evt.newIndex) {
                            const params = {*******};
                            this.$axios.get('****', { params: params }).then(() => {
                                this.getTableData();
                            }).catch(() => {
                                const copyData = JSON.parse(JSON.stringify(this.tableData));
                                this.TABLE_DATA_GROUP = [];
                                this.$nextTick(() => {
                                    this.tableData = copyData;
                                });
                            });
                        }
                    },
                });
            },
        },
    };
    </script>
    
    
    

    下载网 » 关于使用Sortable来实现表格的拖拽遇到的问题

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元