0.0.2 • Published 4 years ago

@findsoft/draggable-table v0.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

@findsoft/draggable-table

基于vuedraggable封装的拖拽表格组件,样式和参数参考了ant-design table

Install

npm install @findsoft/draggable-table

Quick Start

<!-- vue -->
<template>
  <template v-for='(v, k) in demoList' :key='k'>
    <a-draggable-table v-bind='v' @end='onTableDragEnd' @selectChange='onTableSelect'>
      <template #list='{ record }'> 查看 <template>
      <template v-slot:operation='{ text, record }'> 编辑 <template>
    </a-draggable-table>
  </template>
</template>
import DraggableTable, { IBaseRecord, IColumns } from '@findsoft/draggable-table';

export default {
  components: {
    aDraggableTable: DraggableTable
  },
  setup() {
    // IBaseRecord 基础record字段,也可以不用。
    const tableClassList = ref<{id: string, name: string}[]>([
      {id: 1, name: 111},
      {id: 2, name: 222},
    ]);
    const columnClass: IColumns[] = [
      {
        title: '班级名称',
        dataIndex: 'name',
        ellipsis: true,
      },
      {
        title: '班级人数',
        dataIndex: 'stuNum',
        ellipsis: true,
      },
      {
        title: '学生明细',
        dataIndex: 'list',
        slots: { customRender: 'list' },
        ellipsis: true,
      },
      {
        title: '所属教师',
        dataIndex: 'userNames',
        ellipsis: true,
      },
      {
        title: '操作',
        dataIndex: 'operation',
        slots: { customRender: 'operation' },
        width: '15%',
      },
    ];
    const loadingClassList = ref(false);
    const demoList = ref([
      {
        columns:columnClass,
        dataSource:tableClassList,
        loading:loadingClassList,
        rowSelect:true,
        bordered:false
      },
      {
        columns:columnClass,
        dataSource:tableClassList,
        loading:loadingClassList,
        rowSelect:false,
        bordered:true
      },
      {
        columns:columnClass,
        dataSource:tableClassList,
        loading:loadingClassList,
        rowSelect:true,
        bordered:true
      }
    ]);
    const onTableDragEnd = (list: []) => {
      console.log(list,'this is list');
    };
    const onTableSelect = ({ selectRowKeys: rowKeys }: {selectRowKeys: string[]}) => {
      console.log(rowKeys,'this is selectKey');
    }
    return {
      demoList,
      onTableDragEnd,
      onTableSelect
    }
  }
};

Props—Table

参数说明类型默认值必填
dataSource表格数据Array
columns表格列Array
loading表格loading状态booleanfalse
bordered是否显示描边booleantrue
rowSelect是否需要复选框booleantrue
tHeadStyle表头样式Object{}

Props—Column

参数说明类型默认值必填
title表头标题string
dataIndex列对应字段string
key列keystring
width列宽string | number自适应
align对齐方式stringleft
ellipsis单行溢出省略booleantrue
slotscustomRender: {slot: string}string

Slot

slotscustomRender 对应table插槽

CallBack

// 选中ids发生变化时触发
selectChange: () => {selectRowKeys: string[]};
// 拖拽结束后触发
end: () => IBaseRecord[];
0.0.2

4 years ago

0.0.1

4 years ago