tav-ui
Version:
1 lines • 33.5 kB
Source Map (JSON)
{"version":3,"file":"table2.mjs","sources":["../../../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <div ref=\"wrapRef\" :class=\"getWrapperClass\">\n <BasicForm\n v-if=\"getBindValues.useSearchForm\"\n v-bind=\"getFormProps\"\n ref=\"formRef\"\n submit-on-reset\n :table-action=\"tableAction\"\n @register=\"registerForm\"\n @submit=\"handleSearchInfoChange\"\n @advanced-change=\"redoHeight\"\n >\n <template v-for=\"item in getFormSlotKeys\" #[replaceFormSlotKey(item)]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\" />\n </template>\n </BasicForm>\n <!-- ::==================== i7eo:添加 ///// start ///// ====================:: -->\n <div\n v-show=\"showTableAction\"\n ref=\"actionRef\"\n class=\"ta-basic-table-operations flex flex-wrap align-center justify-between\"\n >\n <template v-if=\"useFilter.isVisible\">\n <Filter\n ref=\"filterElRef\"\n :forms=\"getFilterProps\"\n :table-action=\"tableAction\"\n :filter-exclusion=\"filterExclusion\"\n />\n </template>\n <template v-else>\n <div class=\"ta-basic-table-custom-title\">\n <slot name=\"customTitle\" v-bind=\"$slots['customTitle'] || {}\" />\n </div>\n </template>\n <CustomAction\n v-if=\"useInnerCustomAction.isVisible\"\n :visible=\"useInnerCustomAction\"\n :handlers=\"useInnerCustomAction\"\n :table-action=\"tableAction\"\n >\n <slot name=\"customAction\" v-bind=\"$slots['customAction'] || {}\" />\n </CustomAction>\n <!-- <div v-if=\"!tableData.length\" class=\"ta-basic-table-operations-mask\"></div> -->\n </div>\n <!-- ::==================== i7eo:添加 ///// end ///// ====================:: -->\n\n <Table\n v-show=\"getEmptyDataIsShowTable\"\n ref=\"tableElRef\"\n v-bind=\"getBindValues\"\n :row-class-name=\"getRowClassName\"\n @change=\"handleTableChange\"\n >\n <!-- headerCell插槽无法正常渲染,去掉先 -->\n <template\n v-for=\"column in columns\"\n #[`header-${column.dataIndex}`]\n :key=\"column.dataIndex?.toString()\"\n >\n <HeaderCell :column=\"column\" />\n </template>\n <!-- 增加对antdv3.x兼容 -->\n <template #bodyCell=\"data\">\n <slot name=\"bodyCell\" v-bind=\"data || {}\" />\n </template>\n <template #footer=\"data\"><slot name=\"footer\" v-bind=\"data || {}\" /></template>\n </Table>\n\n <!-- <div v-show=\"getBindValues.masking\" class=\"ta-basic-table-mask\"></div> -->\n </div>\n</template>\n<script lang=\"ts\">\n/* eslint-disable @typescript-eslint/no-empty-function */\nimport {\n computed,\n defineComponent,\n inject,\n onActivated,\n onMounted,\n provide,\n ref,\n toRaw,\n unref,\n watch,\n watchEffect,\n} from 'vue'\nimport { isEqual, omit } from 'lodash-es'\nimport { Table } from 'ant-design-vue'\nimport { mitt } from '@tav-ui/utils/mitt'\nimport { warn } from '@tav-ui/utils/log'\nimport { isFunction, isNullOrUnDef } from '@tav-ui/utils/is'\nimport { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\nimport { onUnmountedOrOnDeactivated } from '@tav-ui/hooks/core/onUnmountedOrOnDeactivated'\nimport { useForm } from '@tav-ui/components/form/src/hooks/useForm'\nimport BasicForm from '@tav-ui/components/form'\nimport CustomAction from './components/CustomAction.vue'\nimport expandIcon from './components/ExpandIcon'\nimport Filter from './components/Filter.vue'\nimport HeaderCell from './components/HeaderCell.vue'\nimport { useColumns } from './hooks/useColumns'\nimport { useCustomRow } from './hooks/useCustomRow'\nimport { useDataSource } from './hooks/useDataSource'\nimport { useLoading } from './hooks/useLoading'\nimport { useMasking } from './hooks/useMasking'\nimport { usePagination } from './hooks/usePagination'\nimport { useRowSelection } from './hooks/useRowSelection'\nimport { createTableContext } from './hooks/useTableContext'\nimport { useTableExpand } from './hooks/useTableExpand'\nimport { useTableFooter } from './hooks/useTableFooter'\nimport { useTableForm } from './hooks/useTableForm'\nimport { useTableHeader } from './hooks/useTableHeader'\nimport { useTableScroll } from './hooks/useTableScroll'\nimport { useTableScrollTo } from './hooks/useTableScrollTo'\nimport { useTableStyle } from './hooks/useTableStyle'\nimport { tableProps } from './props'\nimport type { Ref } from 'vue'\nimport type {\n BasicTableProps,\n ColumnChangeParam,\n InnerHandlers,\n SizeType,\n TableActionType,\n} from './types/table'\n\nconst PageWrapperFixedHeightKey = 'PageWrapperFixedHeight'\ntype Recordable<T = any> = Record<string, T>\n\nexport default defineComponent({\n name: 'TaTable',\n components: {\n Table,\n BasicForm,\n HeaderCell,\n Filter,\n CustomAction,\n },\n props: tableProps,\n emits: [\n 'fetch-success',\n 'fetch-error',\n 'selection-change',\n 'register',\n 'row-click',\n 'row-dbClick',\n 'row-contextmenu',\n 'row-mouseenter',\n 'row-mouseleave',\n 'edit-end',\n 'edit-cancel',\n 'edit-row-end',\n 'edit-change',\n 'expanded-rows-change',\n 'change',\n 'columns-change',\n ],\n setup(props, { attrs, emit, slots, expose }) {\n const tableEmitter = mitt()\n provide('tableEmitter', tableEmitter)\n const tableElRef = ref(null)\n const tableData = ref<Recordable[]>([])\n\n const wrapRef = ref(null)\n const formRef = ref(null)\n const actionRef = ref(null)\n const innerPropsRef = ref<Partial<BasicTableProps>>()\n const cacheActionWidths = ref<Record<string, any>>({})\n const columnsForAction = ref<any[]>([])\n const maxWidthForAction = ref<number>(0)\n\n const prefixCls = 'ta-basic-table'\n const [registerForm, formActions] = useForm()\n\n const getProps = computed(() => {\n return { ...props, ...unref(innerPropsRef) } as BasicTableProps\n })\n\n // ::==================== i7eo:添加 ///// start ///// ====================:: //\n const filterElRef = ref(null)\n const useFilter = computed(() => {\n const { filter } = unref(getProps)\n const result = {\n isVisible: false,\n isInputFormVisible: false,\n isPannelFormVisible: false,\n }\n if (!filter) {\n result.isVisible = false\n } else {\n const { inputForm, pannelForm } = filter\n if (inputForm && Object.keys(inputForm).length > 0) {\n result.isInputFormVisible = true\n } else {\n result.isInputFormVisible = false\n }\n\n if (pannelForm && pannelForm.length > 0) {\n result.isPannelFormVisible = true\n } else {\n result.isPannelFormVisible = false\n }\n\n if (result.isInputFormVisible || result.isPannelFormVisible) {\n result.isVisible = true\n } else {\n result.isVisible = false\n }\n }\n return result\n })\n\n const getFilterProps = computed(() => {\n return getProps.value.filter\n })\n\n const useInnerCustomAction = computed(() => {\n const { useAdd, useDelete, useImport, useExport, useRefresh, permission } = unref(getProps)\n let isAddVisible = false\n let isDeleteVisible = false\n let isImportVisible = false\n let isExportVisible = false\n let isRefreshVisible = false\n const Permissions = useGlobalConfig('permissions') as Ref<Record<string, any>>\n\n // 先判断 permission 是否有值,无值走正常的逻辑;有值判断 resourcemap中是否存在不存在走正常逻辑,存在就取值\n isAddVisible = isNullOrUnDef(permission?.add)\n ? useAdd?.ifShow\n : unref(Permissions)[permission!.add]?.ifShow && useAdd?.ifShow\n isDeleteVisible = isNullOrUnDef(permission?.delete)\n ? useDelete?.ifShow\n : unref(Permissions)[permission!.delete]?.ifShow && useDelete?.ifShow\n isImportVisible = isNullOrUnDef(permission?.import)\n ? useImport?.ifShow\n : unref(Permissions)[permission!.import]?.ifShow && useImport?.ifShow\n isExportVisible = isNullOrUnDef(permission?.export)\n ? useExport?.ifShow\n : unref(Permissions)[permission!.export]?.ifShow && useExport?.ifShow\n isRefreshVisible = isNullOrUnDef(permission?.refresh)\n ? useRefresh?.ifShow\n : unref(Permissions)[permission!.refresh]?.ifShow && useRefresh?.ifShow\n\n const result = {\n isVisible:\n isAddVisible ||\n isDeleteVisible ||\n isImportVisible ||\n isExportVisible ||\n isRefreshVisible ||\n !!slots.customAction,\n isAddVisible,\n addHandle: useAdd?.handleAction,\n isDeleteVisible,\n deleteHandle: useDelete?.handleAction,\n isImportVisible,\n importHandle: useImport?.handleAction,\n isExportVisible,\n exportHandle: useExport?.handleAction,\n isRefreshVisible,\n }\n return result\n })\n // ::==================== i7eo:添加 ///// end ///// ====================:: //\n\n const isFixedHeightPage = inject(PageWrapperFixedHeightKey, false)\n watchEffect(() => {\n unref(isFixedHeightPage) &&\n props.canResize &&\n warn(\n \"'canResize' of BasicTable may not work in PageWrapper with 'fixedHeight' (especially in hot updates)\"\n )\n })\n\n const { getLoading, setLoading } = useLoading(getProps)\n const { getMasking, setMasking } = useMasking(getProps)\n const {\n getPaginationInfo,\n getPagination,\n setPagination,\n setShowPagination,\n getShowPagination,\n } = usePagination(getProps)\n\n const {\n getRowSelection,\n getRowSelectionRef,\n getSelectRows,\n clearSelectedRowKeys,\n getSelectRowKeys,\n deleteSelectRowByKey,\n setSelectedRowKeys,\n } = useRowSelection(getProps, tableData, emit)\n\n const {\n handleTableChange: onTableChange,\n getDataSourceRef,\n getDataSource,\n getRawDataSource,\n setTableData,\n updateTableDataRecord,\n deleteTableDataRecord,\n insertTableDataRecord,\n findTableDataRecord,\n fetch,\n getRowKey,\n reload,\n getAutoCreateKey,\n updateTableData,\n } = useDataSource(\n tableElRef,\n getProps,\n {\n tableData,\n getPaginationInfo,\n setLoading,\n setPagination,\n getFieldsValue: formActions.getFieldsValue,\n clearSelectedRowKeys,\n },\n emit,\n filterElRef\n )\n\n function handleTableChange(...args: any[]) {\n // @ts-ignore\n onTableChange.call(undefined, ...args)\n emit('change', ...args)\n // 解决通过useTable注册onChange时不起作用的问题\n const { onChange } = unref(getProps)\n // @ts-ignore\n onChange && isFunction(onChange) && onChange.call(undefined, ...args)\n }\n\n const {\n getViewColumns,\n getColumns,\n setCacheColumnsByField,\n setColumns,\n getColumnsRef,\n getCacheColumns,\n } = useColumns(getProps, getPaginationInfo)\n\n const { getScrollRef, redoHeight, fnInit, keepScrollIns } = useTableScroll(\n getProps,\n tableElRef,\n getColumnsRef,\n getRowSelectionRef,\n getDataSourceRef,\n slots as any,\n wrapRef,\n formRef,\n actionRef\n )\n\n // propsRef: ComputedRef<BasicTableProps>,\n // tableElRef: Ref<ComponentRef>,\n // columnsRef: ComputedRef<BasicColumn[]>,\n // rowSelectionRef: ComputedRef<TableRowSelection | null>,\n // getDataSourceRef: ComputedRef<Recordable[]>,\n // wrapRef: Ref<HTMLElement | null>,\n // formRef: Ref<HTMLElement | null>,\n // actionRef: Ref<HTMLElement | null>\n\n const { scrollTo } = useTableScrollTo(tableElRef, getDataSourceRef)\n\n const { customRow } = useCustomRow(getProps, {\n setSelectedRowKeys,\n getSelectRowKeys,\n clearSelectedRowKeys,\n getAutoCreateKey,\n emit,\n })\n\n const { getRowClassName } = useTableStyle(getProps, prefixCls)\n\n const { getExpandOption, expandAll, expandRows, collapseAll } = useTableExpand(\n getProps,\n tableData,\n emit\n )\n\n const handlers: InnerHandlers = {\n onColumnsChange: (data: ColumnChangeParam[]) => {\n emit('columns-change', data)\n // support useTable\n unref(getProps).onColumnsChange?.(data)\n },\n }\n\n const { getHeaderProps } = useTableHeader(getProps, slots, handlers)\n\n const { getFooterProps } = useTableFooter(getProps, getScrollRef, tableElRef, getDataSourceRef)\n\n const { getFormProps, replaceFormSlotKey, getFormSlotKeys, handleSearchInfoChange } =\n useTableForm(getProps, slots, fetch, getLoading)\n\n const _getColumns = computed(() => {\n let columns = unref(getViewColumns)\n if (unref(columnsForAction) && unref(columnsForAction).length > 0) {\n columns = unref(columnsForAction)\n }\n return columns\n })\n\n const getBindValues = computed(() => {\n const dataSource = unref(getDataSourceRef)\n let propsData: Recordable = {\n // ...(dataSource.length === 0 ? { getPopupContainer: () => document.body } : {}),\n ...attrs,\n customRow,\n expandIcon: slots.expandIcon ? null : expandIcon(),\n ...unref(getProps),\n ...unref(getHeaderProps),\n scroll: unref(getScrollRef),\n loading: unref(getLoading),\n masking: unref(getMasking),\n tableLayout: 'fixed',\n rowSelection: unref(getRowSelectionRef),\n rowKey: unref(getRowKey),\n // columns: toRaw(unref(getViewColumns)),\n columns: unref(_getColumns),\n pagination: toRaw(unref(getPaginationInfo)),\n dataSource,\n footer: unref(getFooterProps),\n ...unref(getExpandOption),\n }\n if (slots.expandedRowRender) {\n propsData = omit(propsData, 'scroll')\n }\n\n propsData = omit(propsData, ['class', 'onChange'])\n return propsData\n })\n\n const getWrapperClass = computed(() => {\n const values = unref(getBindValues)\n return [\n prefixCls,\n attrs.class,\n {\n [`${prefixCls}-form-container`]: values.useSearchForm,\n [`${prefixCls}--inset`]: values.inset,\n [`${prefixCls}--full-height`]: values.fullHeight,\n },\n ]\n })\n\n const getEmptyDataIsShowTable = computed(() => {\n const { emptyDataIsShowTable, useSearchForm } = unref(getProps)\n if (emptyDataIsShowTable || !useSearchForm) {\n return true\n }\n return !!unref(getDataSourceRef).length\n })\n\n function setProps(props: Partial<BasicTableProps>) {\n innerPropsRef.value = { ...unref(innerPropsRef), ...props }\n }\n const getFilterForm = () => {\n //@ts-ignore\n return filterElRef.value.pannelFormRef\n }\n // 统计 action 渲染数据,动态设置宽度\n const setCacheActionWidths = ({ key = '', value = 0 }) => {\n if (key) {\n cacheActionWidths.value[key] = value\n }\n }\n watch(\n () => [unref(getViewColumns), cacheActionWidths],\n ([newCol], [preCol]) => {\n const _tableData = unref(tableData)\n const maxWidth = Math.max(...Object.values(unref(cacheActionWidths)))\n if (!isEqual(newCol, preCol) || (_tableData && maxWidth > unref(maxWidthForAction))) {\n const columns = unref(getViewColumns).map((column) => {\n if (\n typeof column.dataIndex === 'string' &&\n ['action', 'actions'].includes(column.dataIndex)\n ) {\n column.width = Math.ceil(maxWidth)\n column.minWidth = Math.ceil(maxWidth)\n return column\n }\n return column\n })\n columnsForAction.value = columns\n maxWidthForAction.value = maxWidth\n }\n },\n {\n deep: true,\n }\n )\n onMounted(() => {\n fnInit()\n })\n onActivated(() => {\n if (keepScrollIns.value) {\n keepScrollIns.value.scrollFn()\n }\n })\n onUnmountedOrOnDeactivated(() => {\n cacheActionWidths.value = {}\n columnsForAction.value = []\n maxWidthForAction.value = 0\n })\n const tableAction: TableActionType = {\n reload,\n getSelectRows,\n clearSelectedRowKeys,\n getSelectRowKeys,\n deleteSelectRowByKey,\n setPagination,\n setTableData,\n updateTableDataRecord,\n deleteTableDataRecord,\n insertTableDataRecord,\n findTableDataRecord,\n redoHeight,\n setSelectedRowKeys,\n setColumns,\n setLoading,\n setMasking,\n getDataSource,\n getRawDataSource,\n setProps,\n getRowSelection,\n getPaginationRef: getPagination,\n getColumns,\n getCacheColumns,\n emit,\n updateTableData,\n setShowPagination,\n getShowPagination,\n setCacheColumnsByField,\n expandAll,\n expandRows,\n scrollTo,\n collapseAll,\n getFilterForm,\n getSize: () => {\n return unref(getBindValues).size as SizeType\n },\n }\n createTableContext({ ...tableAction, wrapRef, getBindValues, setCacheActionWidths })\n\n // ::==================== i7eo:添加 ///// start ///// ====================:: //\n watchEffect(() => {\n // 数据渲染完毕后发送 dom,此时布局已经确定\n // if (tableElRef.value && tableData.value.length) {\n if (tableElRef.value) {\n tableEmitter.emit('table:fetch-refs', {\n table: (tableElRef.value as any).$el,\n })\n }\n })\n // ::==================== i7eo:添加 ///// end ///// ====================:: //\n\n expose(tableAction)\n\n emit('register', tableAction, formActions)\n\n return {\n tableData,\n filterElRef,\n useFilter,\n getFilterProps,\n useInnerCustomAction,\n tableElRef,\n getBindValues,\n getLoading,\n registerForm,\n handleSearchInfoChange,\n getEmptyDataIsShowTable,\n handleTableChange,\n getRowClassName,\n wrapRef,\n tableAction,\n redoHeight,\n getFormProps: getFormProps as any,\n replaceFormSlotKey,\n getFormSlotKeys,\n getWrapperClass,\n columns: getViewColumns,\n formRef,\n actionRef,\n }\n },\n})\n</script>\n"],"names":["Table","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_createBlock","_mergeProps","_renderSlot","_normalizeProps","_guardReactiveProps","_withCtx","_createCommentVNode","_withDirectives","_createVNode","_createSlots","_vShow"],"mappings":"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"}