WholeProcessPlatform/frontend/src/views/dianZhanZhuanTi/layoutGridSkeletons.ts
2026-07-31 11:13:49 +08:00

134 lines
4.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* CSS Grid 布局骨架配置
*
* 每种布局只定义网格结构(行、列、区域划分),不指定具体模块。
* 具体模块由后端 bclData 动态决定,通过 position + per-position-index 映射到 grid-area 名。
*
* 区域命名规则:{position}-{areaIdx}
* areaIdx = 按 position 各自从 0 递增编号(非全局 index
* 例如 left-0 = 左侧第 1 个模块right-2 = 右侧第 3 个模块
*
* 相同区域名出现多次 = 合并单元格(如某侧只有 1 个模块时撑满多行)
* "." = 空白区域(透出底图)
*/
export interface GridSkeleton {
/** CSS grid-template-areas 字符串 */
gridTemplateAreas: string;
/** CSS grid-template-columns 字符串 */
gridTemplateColumns: string;
/** CSS grid-template-rows 字符串 */
gridTemplateRows: string;
}
export const LAYOUT_GRID_SKELETONS: Record<string, GridSkeleton> = {
// 左3右3加底
layout1: {
gridTemplateAreas:
'"left-0 . right-0" "left-1 . right-1" "left-2 bottom-0 right-2"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//左4右4加底
layout2: {
gridTemplateAreas:
'"left-0 . right-0" "left-1 . right-1" "left-2 . right-2" "left-3 bottom-0 right-3"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr 1fr'
},
// 左三右三(无底部)
layout3: {
gridTemplateAreas:
'"left-0 . right-0" "left-1 . right-1" "left-2 . right-2"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//左4右4无底
layout4: {
gridTemplateAreas:
'"left-0 . right-0" "left-1 . right-1" "left-2 . right-2" "left-3 . right-3"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr 1fr'
},
// 右二(无左侧、无底部)
layout5: {
gridTemplateAreas: '". . right-0" ". . right-1"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr'
},
// 左2右1加底
layout6: {
gridTemplateAreas:
'"left-0 . right-0" "left-1 . right-0" "bottom-0 bottom-0 bottom-0"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//仅左3
layout7: {
gridTemplateAreas: '"left-0 . ." "left-1 . ." "left-2 . ."',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//左2右3加底
layout8: {
gridTemplateAreas:
'"left-0 . right-0" "left-1 . right-1" "bottom-0 bottom-0 right-2"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//左3加底
layout9: {
gridTemplateAreas: '"left-0 . ." "left-1 . ." "left-2 bottom-0 bottom-0"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
// 左二右二 + 底部(底部撑满全宽)
layout10: {
gridTemplateAreas:
'"left-0 . right-0" "left-1 . right-1" "bottom-0 bottom-0 bottom-0"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
// 左3右1无底
layout11: {
gridTemplateAreas: '"left-0 . right-0" "left-1 . right-0" "left-2 . ."',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//右一无底
layout12: {
gridTemplateAreas: '". . right-0" ". . right-0" ". . ." ". . ."',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr 1fr'
},
//右1(2/3高)无底
layout13: {
gridTemplateAreas: '". . right-0" ". . right-0" ". . ." ',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr '
},
//左一右一无底
layout14: {
gridTemplateAreas: '". left-0 . right-0" "left-0 . right-0" ". . ."',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//左4右3满底
layout15: {
gridTemplateAreas:
' "left-0 . right-0" "left-1 . right-1" "left-2 . right-2" "left-3 bottom-0 bottom-0"',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
//左(2/3+1/3)右3加底
layout16: {
gridTemplateAreas:
'"left-0 . right-0" "left-0 . right-1" "bottom-0 bottom-0 right-2" ',
gridTemplateColumns: '440px 1fr 440px',
gridTemplateRows: '1fr 1fr 1fr'
},
// TODO: 后续补充其余布局的骨架配置
};