diff --git a/packages/components/table/BaseTable.tsx b/packages/components/table/BaseTable.tsx index e8a2dc8021..1775dba128 100644 --- a/packages/components/table/BaseTable.tsx +++ b/packages/components/table/BaseTable.tsx @@ -73,6 +73,7 @@ const BaseTable = forwardRef((originalProps, ref) // 1. 表头吸顶;2. 表尾吸底;3. 底部滚动条吸底;4. 分页器吸底 const { + affixOffset, affixHeaderRef, affixFooterRef, horizontalScrollbarRef, @@ -80,7 +81,7 @@ const BaseTable = forwardRef((originalProps, ref) showAffixHeader, showAffixFooter, showAffixPagination, - onHorizontalScroll, + onTableHorizontalScroll, setTableContentRef, updateAffixHeaderOrFooter, } = useAffix(props, { showElement }); @@ -184,7 +185,7 @@ const BaseTable = forwardRef((originalProps, ref) const onFixedChange = () => { const timer = setTimeout(() => { - onHorizontalScroll(); + onTableHorizontalScroll(); updateAffixHeaderOrFooter(); clearTimeout(timer); }, 0); @@ -244,7 +245,7 @@ const BaseTable = forwardRef((originalProps, ref) updateColumnFixedShadow(target); } lastScrollY = top; - onHorizontalScroll(target); + onTableHorizontalScroll(target); emitScrollEvent(e); }; @@ -628,6 +629,7 @@ const BaseTable = forwardRef((originalProps, ref) [ // eslint-disable-next-line ...headUseMemoDependencies, + affixOffset, showAffixHeader, tableWidth, tableElmWidth, @@ -646,7 +648,7 @@ const BaseTable = forwardRef((originalProps, ref) renderAffixedFooter, // eslint-disable-next-line react-hooks/exhaustive-deps [ - // eslint-disable-next-line react-hooks/exhaustive-deps + affixOffset, showAffixFooter, isFixedHeader, rowAndColFixedPosition, diff --git a/packages/components/table/_example/fixed-column.tsx b/packages/components/table/_example/fixed-column.tsx index 02e86ad8f0..899c129dc9 100644 --- a/packages/components/table/_example/fixed-column.tsx +++ b/packages/components/table/_example/fixed-column.tsx @@ -1,6 +1,6 @@ import React, { useRef, useState } from 'react'; -import { Table, Radio, Checkbox, Space, Tag, Link } from 'tdesign-react'; -import { ErrorCircleFilledIcon, CheckCircleFilledIcon, CloseCircleFilledIcon } from 'tdesign-icons-react'; +import { Button, Checkbox, Link, Radio, Space, Table, Tag } from 'tdesign-react'; +import { CheckCircleFilledIcon, CloseCircleFilledIcon, ErrorCircleFilledIcon } from 'tdesign-icons-react'; import type { TableProps } from 'tdesign-react'; @@ -27,13 +27,13 @@ const statusNameListMap = { }; export default function TableFixedColumn() { + const tableRef = useRef(null); + const [tableLayout, setTableLayout] = useState('fixed'); const [emptyData, setEmptyData] = useState(false); const [leftFixedColumn, setLeftFixedColumn] = useState(2); const [rightFixedColumn, setReftFixedColumn] = useState(1); - const tableRef = useRef(null); - // eslint-disable-next-line const scrollToCreateTime = () => { // 横向滚动到指定列,一般用于列数量较多的场景 tableRef.current.scrollColumnIntoView('createTime'); @@ -42,6 +42,7 @@ export default function TableFixedColumn() { const table = ( 右侧固定两列 -
+ table-layout: fixed table-layout: auto - + + 空数据 -
+ {table} diff --git a/packages/components/table/_example/fixed-header-col.tsx b/packages/components/table/_example/fixed-header-col.tsx index aab14d1863..d9ab398588 100644 --- a/packages/components/table/_example/fixed-header-col.tsx +++ b/packages/components/table/_example/fixed-header-col.tsx @@ -19,7 +19,6 @@ for (let i = 0; i < 20; i++) { index: i, applicant: ['贾明', '张三', '王芳'][i % 3], status: i % 3, - channel: ['电子签署', '纸质签署', '纸质签署'][i % 3], detail: { email: ['w.cezkdudy@lhll.au', 'r.nmgw@peurezgn.sl', 'p.cumx@rampblpa.ru'][i % 3], }, @@ -65,7 +64,6 @@ export default function TableFixedColumn() { ); }, }, - { colKey: 'channel', title: '签署方式' }, { colKey: 'matters', title: '申请事项', width: '150', foot: '-' }, { colKey: 'detail.email', title: '邮箱地址' }, { colKey: 'createTime', title: '申请日期', width: '120', foot: '-' }, diff --git a/packages/components/table/hooks/useAffix.ts b/packages/components/table/hooks/useAffix.ts index c467dbc42e..ddd677bdd4 100644 --- a/packages/components/table/hooks/useAffix.ts +++ b/packages/components/table/hooks/useAffix.ts @@ -1,7 +1,10 @@ -import { useState, useRef, useMemo, useEffect } from 'react'; -import { TdBaseTableProps } from '../type'; -import { AffixProps } from '../../affix'; +import { useEffect, useMemo, useRef, useState } from 'react'; import { off, on } from '../../_util/listener'; +import type { AffixProps } from '../../affix'; +import type { TdBaseTableProps } from '../type'; + +type AffixOffset = { left: number; top: number }; +const INITIAL_AFFIX_OFFSET: AffixOffset = { left: 0, top: 0 }; /** * 1. 表头吸顶(普通表头吸顶 和 虚拟滚动表头吸顶) @@ -11,6 +14,8 @@ import { off, on } from '../../_util/listener'; */ export default function useAffix(props: TdBaseTableProps, { showElement }: { showElement: boolean }) { const tableContentRef = useRef(null); + const lastTableScrollLeftRef = useRef(0); + // 吸顶表头 const affixHeaderRef = useRef(null); // 吸底表尾 @@ -19,6 +24,12 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho const horizontalScrollbarRef = useRef(null); // 吸底分页器 const paginationRef = useRef(null); + + // 初始化渲染表格时,记录其位置,用于后续计算偏移量 + const initialTableRectRef = useRef(INITIAL_AFFIX_OFFSET); + + const [affixOffset, setAffixOffset] = useState(INITIAL_AFFIX_OFFSET); + // 当表格完全滚动消失在视野时,需要隐藏吸顶表头 const [showAffixHeader, setShowAffixHeader] = useState(true); // 当表格完全滚动消失在视野时,需要隐藏吸底尾部 @@ -32,23 +43,35 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho ); const isAffixed = useMemo( - () => !!(props.headerAffixedTop || props.footerAffixedBottom || props.horizontalScrollAffixedBottom), - [props.footerAffixedBottom, props.headerAffixedTop, props.horizontalScrollAffixedBottom], + () => + !!( + isVirtualScroll || + props.headerAffixedTop || + props.footerAffixedBottom || + props.horizontalScrollAffixedBottom || + props.paginationAffixedBottom + ), + [ + isVirtualScroll, + props.footerAffixedBottom, + props.headerAffixedTop, + props.horizontalScrollAffixedBottom, + props.paginationAffixedBottom, + ], ); - let lastScrollLeft = 0; - const onHorizontalScroll = (scrollElement?: HTMLElement) => { - if (!isAffixed && !isVirtualScroll) return; + const onTableHorizontalScroll = (scrollElement?: HTMLElement) => { + if (!isAffixed) return; let target = scrollElement; if (!target && tableContentRef.current) { - lastScrollLeft = 0; + lastTableScrollLeftRef.current = 0; target = tableContentRef.current; } if (!target) return; const left = target.scrollLeft; // 如果 lastScrollLeft 等于 left,说明不是横向滚动,不需要更新横向滚动距离 - if (lastScrollLeft === left) return; - lastScrollLeft = left; + if (lastTableScrollLeftRef.current === left) return; + lastTableScrollLeftRef.current = left; // 表格内容、吸顶表头、吸底表尾、吸底横向滚动更新 const toUpdateScrollElement = [ tableContentRef.current, @@ -63,6 +86,23 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho } }; + const onPageHorizonScroll = () => { + if (!isAffixed || !tableContentRef.current) return; + const { left, top } = tableContentRef.current.getBoundingClientRect(); + + const leftOffset = left - initialTableRectRef.current.left; + const topOffset = top - initialTableRectRef.current.top; + setAffixOffset({ left: leftOffset, top: topOffset }); + + const toUpdateScrollElement = [affixHeaderRef.current, affixFooterRef.current]; + for (let i = 0, len = toUpdateScrollElement.length; i < len; i++) { + if (toUpdateScrollElement[i]) { + // top 具体的偏移逻辑交个 Affix 组件的底层即可 + toUpdateScrollElement[i].style.marginLeft = `${leftOffset}px`; + } + } + }; + // 吸底的元素(footer、横向滚动条、分页器)是否显示 const isAffixedBottomElementShow = (elementRect: DOMRect, tableRect: DOMRect, headerHeight: number) => tableRect.top + headerHeight < elementRect.top && elementRect.top > elementRect.height; @@ -73,7 +113,7 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho }; const updateAffixHeaderOrFooter = () => { - if (!isAffixed && !isVirtualScroll) return; + if (!isAffixed) return; const pos = tableContentRef.current?.getBoundingClientRect(); if (!pos) return; const headerRect = tableContentRef.current?.querySelector('thead')?.getBoundingClientRect(); @@ -105,24 +145,25 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho } }; - const onDocumentScroll = () => { + const onPageScroll = () => { updateAffixHeaderOrFooter(); + onPageHorizonScroll(); }; const onFootScroll = () => { - onHorizontalScroll(affixFooterRef.current); + onTableHorizontalScroll(affixFooterRef.current); }; const onHeaderScroll = () => { - onHorizontalScroll(affixHeaderRef.current); + onTableHorizontalScroll(affixHeaderRef.current); }; const horizontalScrollbarScroll = () => { - onHorizontalScroll(horizontalScrollbarRef.current); + onTableHorizontalScroll(horizontalScrollbarRef.current); }; const onTableContentScroll = () => { - onHorizontalScroll(tableContentRef.current); + onTableHorizontalScroll(tableContentRef.current); }; const onFootMouseEnter = () => { @@ -157,7 +198,7 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho off(tableContentRef.current, 'scroll', onTableContentScroll); }; - const addHorizontalScrollListeners = () => { + const addTableHorizontalScrollListeners = () => { if (affixHeaderRef.current) { on(affixHeaderRef.current, 'mouseenter', onHeaderMouseEnter); on(affixHeaderRef.current, 'mouseleave', onHeaderMouseLeave); @@ -173,13 +214,13 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho on(horizontalScrollbarRef.current, 'mouseleave', onScrollbarMouseLeave); } - if ((isAffixed || isVirtualScroll) && tableContentRef.current) { + if (isAffixed && tableContentRef.current) { on(tableContentRef.current, 'mouseenter', onTableContentMouseEnter); on(tableContentRef.current, 'mouseleave', onTableContentMouseLeave); } }; - const removeHorizontalScrollListeners = () => { + const removeTableHorizontalScrollListeners = () => { if (affixHeaderRef.current) { off(affixHeaderRef.current, 'mouseenter', onHeaderMouseEnter); off(affixHeaderRef.current, 'mouseleave', onHeaderMouseLeave); @@ -198,42 +239,48 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho } }; - const addVerticalScrollListener = () => { - if (typeof document === 'undefined') return; - if (!isAffixed && !props.paginationAffixedBottom) return; + const addPageScrollListener = () => { const timer = setTimeout(() => { - if (isAffixed || props.paginationAffixedBottom) { - on(document, 'scroll', onDocumentScroll); + if (isAffixed) { + onPageScroll(); // initial sync + on(window, 'scroll', onPageScroll); } else { - off(document, 'scroll', onDocumentScroll); + off(window, 'scroll', onPageScroll); } clearTimeout(timer); }); }; + const refreshTablePosition = () => { + if (!tableContentRef.current) return; + const { left, top } = tableContentRef.current.getBoundingClientRect(); + initialTableRectRef.current = { left, top }; + }; + useEffect(() => { const timer = setTimeout(() => { - addHorizontalScrollListeners(); - onHorizontalScroll(); + addTableHorizontalScrollListeners(); + onTableHorizontalScroll(); updateAffixHeaderOrFooter(); clearTimeout(timer); }); - - return removeHorizontalScrollListeners; + return () => { + removeTableHorizontalScrollListeners(); + }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [affixHeaderRef, affixFooterRef, horizontalScrollbarRef, tableContentRef, showElement]); useEffect(() => { - addVerticalScrollListener(); + addPageScrollListener(); return () => { - off(document, 'scroll', onDocumentScroll); + off(window, 'scroll', onPageScroll); }; // eslint-disable-next-line react-hooks/exhaustive-deps }, [isAffixed]); useEffect(() => { - addHorizontalScrollListeners(); - onHorizontalScroll(); + addTableHorizontalScrollListeners(); + updateAffixHeaderOrFooter(); // eslint-disable-next-line react-hooks/exhaustive-deps }, [ props.data, @@ -244,12 +291,23 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho props.lazyLoad, ]); + useEffect(() => { + on(window, 'resize', refreshTablePosition); + return () => { + off(window, 'resize', refreshTablePosition); + }; + }, []); + const setTableContentRef = (tableContent: HTMLDivElement) => { tableContentRef.current = tableContent; - addVerticalScrollListener(); + addPageScrollListener(); + setTimeout(() => { + refreshTablePosition(); + }, 100); }; return { + affixOffset, showAffixHeader, showAffixFooter, showAffixPagination, @@ -257,7 +315,7 @@ export default function useAffix(props: TdBaseTableProps, { showElement }: { sho affixFooterRef, horizontalScrollbarRef, paginationRef, - onHorizontalScroll, + onTableHorizontalScroll, setTableContentRef, updateAffixHeaderOrFooter, }; diff --git a/test/snap/__snapshots__/csr.test.jsx.snap b/test/snap/__snapshots__/csr.test.jsx.snap index d73f4a466d..235cac0649 100644 --- a/test/snap/__snapshots__/csr.test.jsx.snap +++ b/test/snap/__snapshots__/csr.test.jsx.snap @@ -109320,77 +109320,101 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-c
-
+
- + +
+
+
+
+ +
+
-
-
csr test packages/components/table/_example/fixed-c >
csr test packages/components/table/_example/fixed-h
- @@ -111118,16 +111141,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h 审批状态 - @@ -111249,9 +111259,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111297,9 +111304,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111345,9 +111349,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111393,9 +111394,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111441,9 +111439,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111489,9 +111484,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111537,9 +111529,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111585,9 +111574,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111633,9 +111619,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111681,9 +111664,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111729,9 +111709,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111777,9 +111754,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111825,9 +111799,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111873,9 +111844,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111921,9 +111889,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -111969,9 +111934,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -112017,9 +111979,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -112065,9 +112024,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -112113,9 +112069,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -112145,7 +112098,6 @@ exports[`csr snapshot test > csr test packages/components/table/_example/fixed-h - @@ -150326,11 +150278,11 @@ exports[`ssr snapshot test > ssr test packages/components/table/_example/expanda exports[`ssr snapshot test > ssr test packages/components/table/_example/filter-controlled.tsx 1`] = `"
已选筛选条件:{"lastName":[]}
-
- 签署方式 -
-
csr test packages/components/table/_example/fixed-h - - 电子签署 - 宣传物料制作费用 - 纸质签署 - algolia 服务报销 - 纸质签署 - 相关周边制作费 - 电子签署 - 激励奖品快递费 - 纸质签署 - 宣传物料制作费用 - 纸质签署 - algolia 服务报销 - 电子签署 - 相关周边制作费 - 纸质签署 - 激励奖品快递费 - 纸质签署 - 宣传物料制作费用 - 电子签署 - algolia 服务报销 - 纸质签署 - 相关周边制作费 - 纸质签署 - 激励奖品快递费 - 电子签署 - 宣传物料制作费用 - 纸质签署 - algolia 服务报销 - 纸质签署 - 相关周边制作费 - 电子签署 - 激励奖品快递费 - 纸质签署 - 宣传物料制作费用 - 纸质签署 - algolia 服务报销 - 电子签署 - 相关周边制作费 - 纸质签署 - 激励奖品快递费 - -
申请人
申请状态
签署方式
Email
Date
搜索“”,找到 5 条结果
贾明
审批通过
电子签署w.cezkdudy@lhll.au2022-01-01
张三
审批失败
纸质签署r.nmgw@peurezgn.sl2022-02-01
王芳
审批过期
纸质签署p.cumx@rampblpa.ru2022-03-01
贾明
审批通过
电子签署w.cezkdudy@lhll.au2022-04-01
张三
审批失败
纸质签署r.nmgw@peurezgn.sl2022-01-01
共 0 条数据
请选择
  • 1
跳至
/ 1 页
"`; -exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-column.tsx 1`] = `"
申请人
审批状态
邮箱地址
申请事项
申请日期
操作
贾明
审批通过
w.cezkdudy@lhll.au宣传物料制作费用2022-01-01查看详情
张三
审批失败
r.nmgw@peurezgn.slalgolia 服务报销2022-02-01再次申请
王芳
审批过期
p.cumx@rampblpa.ru相关周边制作费2022-03-01再次申请
贾明
审批通过
w.cezkdudy@lhll.au激励奖品快递费2022-04-01查看详情
张三
审批失败
r.nmgw@peurezgn.sl宣传物料制作费用2022-01-01再次申请
"`; +exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-column.tsx 1`] = `"
申请人
审批状态
邮箱地址
申请事项
申请日期
操作
贾明
审批通过
w.cezkdudy@lhll.au宣传物料制作费用2022-01-01查看详情
张三
审批失败
r.nmgw@peurezgn.slalgolia 服务报销2022-02-01再次申请
王芳
审批过期
p.cumx@rampblpa.ru相关周边制作费2022-03-01再次申请
贾明
审批通过
w.cezkdudy@lhll.au激励奖品快递费2022-04-01查看详情
张三
审批失败
r.nmgw@peurezgn.sl宣传物料制作费用2022-01-01再次申请
"`; exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-header.tsx 1`] = `"
申请人
审批状态
申请事项
邮箱地址
申请日期
操作
贾明
审批通过
宣传物料制作费用
w.cezkdudy@lhll.au
2022-01-01查看详情
张三
审批失败
algolia 服务报销
r.nmgw@peurezgn.sl
2022-02-01再次申请
王芳
审批过期
相关周边制作费
p.cumx@rampblpa.ru
2022-03-01再次申请
贾明
审批通过
激励奖品快递费
w.cezkdudy@lhll.au
2022-04-01查看详情
张三
审批失败
宣传物料制作费用
r.nmgw@peurezgn.sl
2022-01-01再次申请
王芳
审批过期
algolia 服务报销
p.cumx@rampblpa.ru
2022-02-01再次申请
贾明
审批通过
相关周边制作费
w.cezkdudy@lhll.au
2022-03-01查看详情
张三
审批失败
激励奖品快递费
r.nmgw@peurezgn.sl
2022-04-01再次申请
王芳
审批过期
宣传物料制作费用
p.cumx@rampblpa.ru
2022-01-01再次申请
贾明
审批通过
algolia 服务报销
w.cezkdudy@lhll.au
2022-02-01查看详情
张三
审批失败
相关周边制作费
r.nmgw@peurezgn.sl
2022-03-01再次申请
王芳
审批过期
激励奖品快递费
p.cumx@rampblpa.ru
2022-04-01再次申请
贾明
审批通过
宣传物料制作费用
w.cezkdudy@lhll.au
2022-01-01查看详情
张三
审批失败
algolia 服务报销
r.nmgw@peurezgn.sl
2022-02-01再次申请
王芳
审批过期
相关周边制作费
p.cumx@rampblpa.ru
2022-03-01再次申请
贾明
审批通过
激励奖品快递费
w.cezkdudy@lhll.au
2022-04-01查看详情
张三
审批失败
宣传物料制作费用
r.nmgw@peurezgn.sl
2022-01-01再次申请
王芳
审批过期
algolia 服务报销
p.cumx@rampblpa.ru
2022-02-01再次申请
贾明
审批通过
相关周边制作费
w.cezkdudy@lhll.au
2022-03-01查看详情
张三
审批失败
激励奖品快递费
r.nmgw@peurezgn.sl
2022-04-01再次申请
------
"`; -exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-header-col.tsx 1`] = `"
申请人
审批状态
签署方式
申请事项
邮箱地址
申请日期
操作
贾明
审批通过
电子签署宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
纸质签署algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
纸质签署相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
电子签署激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
纸质签署宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
纸质签署algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
电子签署相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
纸质签署激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
王芳
审批过期
纸质签署宣传物料制作费用p.cumx@rampblpa.ru2022-01-01再次申请
贾明
审批通过
电子签署algolia 服务报销w.cezkdudy@lhll.au2022-02-01查看详情
张三
审批失败
纸质签署相关周边制作费r.nmgw@peurezgn.sl2022-03-01再次申请
王芳
审批过期
纸质签署激励奖品快递费p.cumx@rampblpa.ru2022-04-01再次申请
贾明
审批通过
电子签署宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
纸质签署algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
纸质签署相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
电子签署激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
纸质签署宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
纸质签署algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
电子签署相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
纸质签署激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
共20条----
"`; +exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-header-col.tsx 1`] = `"
申请人
审批状态
申请事项
邮箱地址
申请日期
操作
贾明
审批通过
宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
王芳
审批过期
宣传物料制作费用p.cumx@rampblpa.ru2022-01-01再次申请
贾明
审批通过
algolia 服务报销w.cezkdudy@lhll.au2022-02-01查看详情
张三
审批失败
相关周边制作费r.nmgw@peurezgn.sl2022-03-01再次申请
王芳
审批过期
激励奖品快递费p.cumx@rampblpa.ru2022-04-01再次申请
贾明
审批通过
宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
共20条----
"`; exports[`ssr snapshot test > ssr test packages/components/table/_example/lazy.tsx 1`] = `"
申请人
申请状态
申请事项
邮箱地址
申请时间
"`; diff --git a/test/snap/__snapshots__/ssr.test.jsx.snap b/test/snap/__snapshots__/ssr.test.jsx.snap index be8eaee006..bb9ce8e677 100644 --- a/test/snap/__snapshots__/ssr.test.jsx.snap +++ b/test/snap/__snapshots__/ssr.test.jsx.snap @@ -1016,11 +1016,11 @@ exports[`ssr snapshot test > ssr test packages/components/table/_example/expanda exports[`ssr snapshot test > ssr test packages/components/table/_example/filter-controlled.tsx 1`] = `"
已选筛选条件:{"lastName":[]}
申请人
申请状态
签署方式
Email
Date
搜索“”,找到 5 条结果
贾明
审批通过
电子签署w.cezkdudy@lhll.au2022-01-01
张三
审批失败
纸质签署r.nmgw@peurezgn.sl2022-02-01
王芳
审批过期
纸质签署p.cumx@rampblpa.ru2022-03-01
贾明
审批通过
电子签署w.cezkdudy@lhll.au2022-04-01
张三
审批失败
纸质签署r.nmgw@peurezgn.sl2022-01-01
共 0 条数据
请选择
  • 1
跳至
/ 1 页
"`; -exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-column.tsx 1`] = `"
申请人
审批状态
邮箱地址
申请事项
申请日期
操作
贾明
审批通过
w.cezkdudy@lhll.au宣传物料制作费用2022-01-01查看详情
张三
审批失败
r.nmgw@peurezgn.slalgolia 服务报销2022-02-01再次申请
王芳
审批过期
p.cumx@rampblpa.ru相关周边制作费2022-03-01再次申请
贾明
审批通过
w.cezkdudy@lhll.au激励奖品快递费2022-04-01查看详情
张三
审批失败
r.nmgw@peurezgn.sl宣传物料制作费用2022-01-01再次申请
"`; +exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-column.tsx 1`] = `"
申请人
审批状态
邮箱地址
申请事项
申请日期
操作
贾明
审批通过
w.cezkdudy@lhll.au宣传物料制作费用2022-01-01查看详情
张三
审批失败
r.nmgw@peurezgn.slalgolia 服务报销2022-02-01再次申请
王芳
审批过期
p.cumx@rampblpa.ru相关周边制作费2022-03-01再次申请
贾明
审批通过
w.cezkdudy@lhll.au激励奖品快递费2022-04-01查看详情
张三
审批失败
r.nmgw@peurezgn.sl宣传物料制作费用2022-01-01再次申请
"`; exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-header.tsx 1`] = `"
申请人
审批状态
申请事项
邮箱地址
申请日期
操作
贾明
审批通过
宣传物料制作费用
w.cezkdudy@lhll.au
2022-01-01查看详情
张三
审批失败
algolia 服务报销
r.nmgw@peurezgn.sl
2022-02-01再次申请
王芳
审批过期
相关周边制作费
p.cumx@rampblpa.ru
2022-03-01再次申请
贾明
审批通过
激励奖品快递费
w.cezkdudy@lhll.au
2022-04-01查看详情
张三
审批失败
宣传物料制作费用
r.nmgw@peurezgn.sl
2022-01-01再次申请
王芳
审批过期
algolia 服务报销
p.cumx@rampblpa.ru
2022-02-01再次申请
贾明
审批通过
相关周边制作费
w.cezkdudy@lhll.au
2022-03-01查看详情
张三
审批失败
激励奖品快递费
r.nmgw@peurezgn.sl
2022-04-01再次申请
王芳
审批过期
宣传物料制作费用
p.cumx@rampblpa.ru
2022-01-01再次申请
贾明
审批通过
algolia 服务报销
w.cezkdudy@lhll.au
2022-02-01查看详情
张三
审批失败
相关周边制作费
r.nmgw@peurezgn.sl
2022-03-01再次申请
王芳
审批过期
激励奖品快递费
p.cumx@rampblpa.ru
2022-04-01再次申请
贾明
审批通过
宣传物料制作费用
w.cezkdudy@lhll.au
2022-01-01查看详情
张三
审批失败
algolia 服务报销
r.nmgw@peurezgn.sl
2022-02-01再次申请
王芳
审批过期
相关周边制作费
p.cumx@rampblpa.ru
2022-03-01再次申请
贾明
审批通过
激励奖品快递费
w.cezkdudy@lhll.au
2022-04-01查看详情
张三
审批失败
宣传物料制作费用
r.nmgw@peurezgn.sl
2022-01-01再次申请
王芳
审批过期
algolia 服务报销
p.cumx@rampblpa.ru
2022-02-01再次申请
贾明
审批通过
相关周边制作费
w.cezkdudy@lhll.au
2022-03-01查看详情
张三
审批失败
激励奖品快递费
r.nmgw@peurezgn.sl
2022-04-01再次申请
------
"`; -exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-header-col.tsx 1`] = `"
申请人
审批状态
签署方式
申请事项
邮箱地址
申请日期
操作
贾明
审批通过
电子签署宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
纸质签署algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
纸质签署相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
电子签署激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
纸质签署宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
纸质签署algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
电子签署相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
纸质签署激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
王芳
审批过期
纸质签署宣传物料制作费用p.cumx@rampblpa.ru2022-01-01再次申请
贾明
审批通过
电子签署algolia 服务报销w.cezkdudy@lhll.au2022-02-01查看详情
张三
审批失败
纸质签署相关周边制作费r.nmgw@peurezgn.sl2022-03-01再次申请
王芳
审批过期
纸质签署激励奖品快递费p.cumx@rampblpa.ru2022-04-01再次申请
贾明
审批通过
电子签署宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
纸质签署algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
纸质签署相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
电子签署激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
纸质签署宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
纸质签署algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
电子签署相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
纸质签署激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
共20条----
"`; +exports[`ssr snapshot test > ssr test packages/components/table/_example/fixed-header-col.tsx 1`] = `"
申请人
审批状态
申请事项
邮箱地址
申请日期
操作
贾明
审批通过
宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
王芳
审批过期
宣传物料制作费用p.cumx@rampblpa.ru2022-01-01再次申请
贾明
审批通过
algolia 服务报销w.cezkdudy@lhll.au2022-02-01查看详情
张三
审批失败
相关周边制作费r.nmgw@peurezgn.sl2022-03-01再次申请
王芳
审批过期
激励奖品快递费p.cumx@rampblpa.ru2022-04-01再次申请
贾明
审批通过
宣传物料制作费用w.cezkdudy@lhll.au2022-01-01查看详情
张三
审批失败
algolia 服务报销r.nmgw@peurezgn.sl2022-02-01再次申请
王芳
审批过期
相关周边制作费p.cumx@rampblpa.ru2022-03-01再次申请
贾明
审批通过
激励奖品快递费w.cezkdudy@lhll.au2022-04-01查看详情
张三
审批失败
宣传物料制作费用r.nmgw@peurezgn.sl2022-01-01再次申请
王芳
审批过期
algolia 服务报销p.cumx@rampblpa.ru2022-02-01再次申请
贾明
审批通过
相关周边制作费w.cezkdudy@lhll.au2022-03-01查看详情
张三
审批失败
激励奖品快递费r.nmgw@peurezgn.sl2022-04-01再次申请
共20条----
"`; exports[`ssr snapshot test > ssr test packages/components/table/_example/lazy.tsx 1`] = `"
申请人
申请状态
申请事项
邮箱地址
申请时间
"`;