vue + Ant Design 表格多选 mixin

/**
 * 用于 mixin 表格多选 
 **/

export const rowSelectionMixin = {
    data() {
        return {
            /* table选中keys*/
            selectedRowKeys: [],
            /* table选中records*/
            selectionRows: [],
        }
    },
    computed: {
        rowSelection() {
            return {
                selectedRowKeys: this.selectedRowKeys,
                onChange: this.onSelectChange,
                getCheckboxProps: record => ({
                    props: {
                        /** 禁止选择行
                         *  默认不禁止任何行,如果有需要 可以通过 disabledRow 方法进行操作
                         *  在表格数组改变的时候,会调用此处回调,如果禁止选择条件变化,需要重新对表格数据进行赋值
                         *  e.g: this.dataSource = [...this.dataSource]
                         *  改变禁止选择条件时,要先清空之前选择的数据
                         */
                        disabled: this.disabledRow ? this.disabledRow(record) : false
                    }
                })
            }
        }
    },
    methods: {
        // 此方法不传参数默认取消选择框,但是当此方法在 组件中直接调用时,要注意加(),因为不加会默认传一个点击事件的对象过来,会报错
        onSelectChange(selectedRowKeys = [], selectionRows = []) {
            console.log(selectedRowKeys);
            this.selectedRowKeys = selectedRowKeys;
            this.selectionRows = selectionRows;
        },
        // 批量操作
        /** 
         * 传入一个回调函数,此处进行默认判断空减少重复操作 
         * 例子: @click="batchOperation(()=>changeHeadTeacher('selectedRows',12313))"
         * 加一个空方法来中转,因为 @click="batchOperation(changeHeadTeacher('selectedRows',12313))" 会将执行完的方法的返回值作为参数传进来
         */
        batchOperation(callback = () => {}) {
            console.log(callback);
            if (this.selectedRowKeys.length > 0) callback();
            else this.$message.warning("至少选择一条数据!")
        }
    }
}

vue 富文本图片上传处理
vue Ant Design Select 选择框输入搜索已有数据 mixin

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容