@@ -56,11 +56,21 @@ export default function CrosstabTable({
5656
5757 // 初始化选中的值维度
5858 useEffect ( ( ) => {
59- if ( metadata && metadata . valueDimensions . length > 0 && ! selectedValueDimension ) {
60- setSelectedValueDimension ( metadata . valueDimensions [ 0 ] . id )
59+ if ( metadata && metadata . valueDimensions . length > 0 ) {
60+ // 如果没有选中的值维度,或者当前选中的值维度已经不存在,则设置为第一个
61+ if ( ! selectedValueDimension || ! metadata . valueDimensions . find ( d => d . id === selectedValueDimension ) ) {
62+ setSelectedValueDimension ( metadata . valueDimensions [ 0 ] . id )
63+ }
6164 }
6265 } , [ metadata , selectedValueDimension ] )
6366
67+ // 添加调试信息
68+ useEffect ( ( ) => {
69+ console . log ( 'Current selectedValueDimension:' , selectedValueDimension )
70+ console . log ( 'Available value dimensions:' , metadata ?. valueDimensions ?. map ( d => d . id ) )
71+ console . log ( 'Table data keys:' , Object . keys ( tableData ) )
72+ } , [ selectedValueDimension , metadata , tableData ] )
73+
6474 // 生成多维度表格数据
6575 const { dataSource, columns } = useMemo ( ( ) => {
6676 if ( ! metadata || ! metadata . horizontalDimensions . length || ! metadata . verticalDimensions . length ) {
@@ -86,11 +96,32 @@ export default function CrosstabTable({
8696 const cellKey = `${ hPath } |${ vPath } `
8797 const cellData = tableData [ cellKey ]
8898
99+ // 添加调试信息
100+ if ( cellData ) {
101+ console . log ( `Cell data for ${ cellKey } :` , cellData )
102+ console . log ( `Selected value dimension: ${ selectedValueDimension } ` )
103+ console . log ( `Available dimensions in cell:` , Object . keys ( cellData ) )
104+ }
105+
89106 if ( cellData && selectedValueDimension ) {
90107 row [ hPath ] = cellData [ selectedValueDimension ] || ''
91108 } else {
92109 row [ hPath ] = ''
93110 }
111+
112+ // 如果没有选中的值维度但是有数据,尝试使用第一个可用的值维度
113+ if ( cellData && ! selectedValueDimension && metadata . valueDimensions . length > 0 ) {
114+ const firstValueDimension = metadata . valueDimensions [ 0 ] . id
115+ row [ hPath ] = cellData [ firstValueDimension ] || ''
116+ console . log ( `Using first value dimension ${ firstValueDimension } for cell ${ cellKey } ` )
117+ }
118+
119+ // 如果仍然没有数据,但是cellData中有任何值,使用第一个值
120+ if ( ! row [ hPath ] && cellData && Object . keys ( cellData ) . length > 0 ) {
121+ const firstAvailableKey = Object . keys ( cellData ) [ 0 ]
122+ row [ hPath ] = cellData [ firstAvailableKey ] || ''
123+ console . log ( `Using first available key ${ firstAvailableKey } for cell ${ cellKey } ` )
124+ }
94125 } )
95126
96127 return row
0 commit comments