|
|
|
@ -15,8 +15,6 @@ import { set, get } from 'lodash-es'
|
|
|
|
import { CSSProperties } from 'vue'
|
|
|
|
import { CSSProperties } from 'vue'
|
|
|
|
import { getSlot } from '@/utils/tsxHelper'
|
|
|
|
import { getSlot } from '@/utils/tsxHelper'
|
|
|
|
import TableActions from './components/TableActions.vue'
|
|
|
|
import TableActions from './components/TableActions.vue'
|
|
|
|
// import Sortable from 'sortablejs'
|
|
|
|
|
|
|
|
// import { Icon } from '@/components/Icon'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default defineComponent({
|
|
|
|
export default defineComponent({
|
|
|
|
name: 'Table',
|
|
|
|
name: 'Table',
|
|
|
|
@ -32,8 +30,6 @@ export default defineComponent({
|
|
|
|
type: Array as PropType<TableColumn[]>,
|
|
|
|
type: Array as PropType<TableColumn[]>,
|
|
|
|
default: () => []
|
|
|
|
default: () => []
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// 展开行
|
|
|
|
|
|
|
|
// expand: propTypes.bool.def(false),
|
|
|
|
|
|
|
|
// 是否展示分页
|
|
|
|
// 是否展示分页
|
|
|
|
pagination: {
|
|
|
|
pagination: {
|
|
|
|
type: Object as PropType<Pagination>,
|
|
|
|
type: Object as PropType<Pagination>,
|
|
|
|
@ -62,7 +58,6 @@ export default defineComponent({
|
|
|
|
type: Array as PropType<string[]>,
|
|
|
|
type: Array as PropType<string[]>,
|
|
|
|
default: () => []
|
|
|
|
default: () => []
|
|
|
|
},
|
|
|
|
},
|
|
|
|
// sortable: propTypes.bool.def(false),
|
|
|
|
|
|
|
|
height: propTypes.oneOfType([Number, String]),
|
|
|
|
height: propTypes.oneOfType([Number, String]),
|
|
|
|
maxHeight: propTypes.oneOfType([Number, String]),
|
|
|
|
maxHeight: propTypes.oneOfType([Number, String]),
|
|
|
|
stripe: propTypes.bool.def(false),
|
|
|
|
stripe: propTypes.bool.def(false),
|
|
|
|
@ -188,7 +183,7 @@ export default defineComponent({
|
|
|
|
scrollbarAlwaysOn: propTypes.bool.def(false),
|
|
|
|
scrollbarAlwaysOn: propTypes.bool.def(false),
|
|
|
|
flexible: propTypes.bool.def(false)
|
|
|
|
flexible: propTypes.bool.def(false)
|
|
|
|
},
|
|
|
|
},
|
|
|
|
emits: ['update:pageSize', 'update:currentPage', 'register', 'refresh', 'sortable-change'],
|
|
|
|
emits: ['update:pageSize', 'update:currentPage', 'register', 'refresh'],
|
|
|
|
setup(props, { attrs, emit, slots, expose }) {
|
|
|
|
setup(props, { attrs, emit, slots, expose }) {
|
|
|
|
const elTableRef = ref<ComponentRef<typeof ElTable>>()
|
|
|
|
const elTableRef = ref<ComponentRef<typeof ElTable>>()
|
|
|
|
|
|
|
|
|
|
|
|
@ -213,33 +208,6 @@ export default defineComponent({
|
|
|
|
return propsObj
|
|
|
|
return propsObj
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
// const sortableEl = ref()
|
|
|
|
|
|
|
|
// 初始化拖拽
|
|
|
|
|
|
|
|
// const initDropTable = () => {
|
|
|
|
|
|
|
|
// const el = unref(elTableRef)?.$el.querySelector('.el-table__body tbody')
|
|
|
|
|
|
|
|
// if (!el) return
|
|
|
|
|
|
|
|
// if (unref(sortableEl)) unref(sortableEl).destroy()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// sortableEl.value = Sortable.create(el, {
|
|
|
|
|
|
|
|
// handle: '.table-move',
|
|
|
|
|
|
|
|
// animation: 180,
|
|
|
|
|
|
|
|
// onEnd(e: any) {
|
|
|
|
|
|
|
|
// emit('sortable-change', e)
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// watch(
|
|
|
|
|
|
|
|
// () => getProps.value.sortable,
|
|
|
|
|
|
|
|
// async (v) => {
|
|
|
|
|
|
|
|
// await nextTick()
|
|
|
|
|
|
|
|
// v && initDropTable()
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// immediate: true
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const setProps = (props: TableProps = {}) => {
|
|
|
|
const setProps = (props: TableProps = {}) => {
|
|
|
|
mergeProps.value = Object.assign(unref(mergeProps), props)
|
|
|
|
mergeProps.value = Object.assign(unref(mergeProps), props)
|
|
|
|
outsideProps.value = { ...props } as any
|
|
|
|
outsideProps.value = { ...props } as any
|
|
|
|
@ -495,20 +463,6 @@ export default defineComponent({
|
|
|
|
tableSlots['append'] = (...args: any[]) => getSlot(slots, 'append', args)
|
|
|
|
tableSlots['append'] = (...args: any[]) => getSlot(slots, 'append', args)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// const { sortable } = unref(getProps)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// const sortableEl = sortable ? (
|
|
|
|
|
|
|
|
// <ElTableColumn
|
|
|
|
|
|
|
|
// className="table-move cursor-move"
|
|
|
|
|
|
|
|
// type="sortable"
|
|
|
|
|
|
|
|
// prop="sortable"
|
|
|
|
|
|
|
|
// width="60px"
|
|
|
|
|
|
|
|
// align="center"
|
|
|
|
|
|
|
|
// >
|
|
|
|
|
|
|
|
// <Icon icon="ant-design:drag-outlined" />
|
|
|
|
|
|
|
|
// </ElTableColumn>
|
|
|
|
|
|
|
|
// ) : null
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<div v-loading={unref(getProps).loading}>
|
|
|
|
<div v-loading={unref(getProps).loading}>
|
|
|
|
{unref(getProps).showAction ? (
|
|
|
|
{unref(getProps).showAction ? (
|
|
|
|
|