import { propTypes } from '/@/utils/propTypes';
|
|
export const vxeProps = () => ({
|
rowKey: propTypes.string.def('id'),
|
// 列信息
|
columns: {
|
type: Array,
|
required: true,
|
},
|
// 数据源
|
dataSource: {
|
type: Array,
|
required: true,
|
},
|
authPre: {
|
type: String,
|
required: false,
|
default: '',
|
},
|
// 是否显示工具栏
|
toolbar: propTypes.bool.def(false),
|
// 工具栏配置
|
toolbarConfig: propTypes.object.def(() => ({
|
// prefix 前缀;suffix 后缀;
|
slots: ['prefix', 'suffix'],
|
// add 新增按钮;remove 删除按钮;clearSelection 清空选择按钮;collapse 展开收起
|
btns: ['add', 'remove', 'clearSelection'],
|
})),
|
// 是否显示行号
|
rowNumber: propTypes.bool.def(false),
|
// 是否可选择行
|
rowSelection: propTypes.bool.def(false),
|
// 选择行类型
|
rowSelectionType: propTypes.oneOf(['checkbox', 'radio']).def('checkbox'),
|
// 是否可展开行
|
rowExpand: propTypes.bool.def(false),
|
// 展开行配置
|
expandConfig: propTypes.object.def(() => ({})),
|
// 页面是否在加载中
|
loading: propTypes.bool.def(false),
|
// 表格高度
|
height: propTypes.oneOfType([propTypes.number, propTypes.string]).def('auto'),
|
// 最大高度
|
maxHeight: {
|
type: Number,
|
default: () => null,
|
},
|
// 要禁用的行
|
disabledRows: propTypes.object.def(() => ({})),
|
// 是否禁用全部组件
|
disabled: propTypes.bool.def(false),
|
// 是否可拖拽排序(有固定列的情况下无法拖拽排序,仅可上下排序)
|
dragSort: propTypes.bool.def(false),
|
// 排序字段保存的Key
|
sortKey: propTypes.string.def('orderNum'),
|
// 排序序号开始值,默认为 0
|
sortBegin: propTypes.number.def(0),
|
// 大小,可选值有:medium(中)、small(小)、mini(微)
|
size: propTypes.oneOf(['medium', 'small', 'mini']).def('medium'),
|
// 是否显示边框线
|
bordered: propTypes.bool.def(false),
|
// 分页器参数,设置了即可显示分页器
|
pagination: propTypes.object.def(() => ({})),
|
// 点击行时是否显示子表单
|
clickRowShowSubForm: propTypes.bool.def(false),
|
// 点击行时是否显示主表单
|
clickRowShowMainForm: propTypes.bool.def(false),
|
// 是否点击选中行,优先级最低
|
clickSelectRow: propTypes.bool.def(false),
|
// 是否开启 reload 数据效果
|
reloadEffect: propTypes.bool.def(false),
|
// 校验规则
|
editRules: propTypes.object.def(() => ({})),
|
// 是否异步删除行,如果你要实现异步删除,那么需要把这个选项开启,
|
// 在remove事件里调用confirmRemove方法才会真正删除(除非删除的全是新增的行)
|
asyncRemove: propTypes.bool.def(false),
|
// 是否一直显示组件,如果为false则只有点击的时候才出现组件
|
// 注:该参数不能动态修改;如果行、列字段多的情况下,会根据机器性能造成不同程度的卡顿。
|
// TODO 新版vxe-table取消了 visible 参数,导致无法实现该功能
|
alwaysEdit: propTypes.bool.def(false),
|
// 联动配置,数组,详情配置见文档
|
linkageConfig: propTypes.array.def(() => []),
|
// 是否开启使用 webSocket 无痕刷新
|
socketReload: propTypes.bool.def(false),
|
// 相同的socketKey更改时会互相刷新
|
socketKey: propTypes.string.def('vxe-default'),
|
// 新增行时切换行的激活状态
|
addSetActive: propTypes.bool.def(true),
|
// 是否开启键盘编辑
|
keyboardEdit: propTypes.bool.def(false),
|
});
|
|
export const vxeEmits = ['save', 'added', 'removed', 'inserted', 'dragged', 'selectRowChange', 'pageChange', 'valueChange'];
|