feat: 封装xTable 组件

This commit is contained in:
xingyu
2023-01-03 10:10:51 +08:00
parent 6f8384af70
commit f831b43dec
8 changed files with 358 additions and 0 deletions

View File

@ -0,0 +1,28 @@
import { ref, unref } from 'vue'
import { XTableProps } from '@/components/XTable/src/type'
export interface tableMethod {
reload: () => void
setProps: (props: XTableProps) => void
}
export function useXTable(props: XTableProps): [Function, tableMethod] {
const tableRef = ref<Nullable<tableMethod>>(null)
function register(instance) {
tableRef.value = instance
props && instance.setProps(props)
}
function getInstance(): tableMethod {
const table = unref(tableRef)
if (!table) {
console.error('表格实例不存在')
}
return table as tableMethod
}
const methods: tableMethod = {
reload: () => getInstance().reload(),
setProps: (props) => getInstance().setProps(props)
}
return [register, methods]
}