diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e053620967ba09327e900c2fc4e395889d600dc..3263a3e37b9fe6388628b2f6c1915ca7380dce5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,14 @@ - 添加富文本编辑器 +### Change + +- 卡片视图绘制为卡片样式 + +### Fixed + +- 修复多数据返回顶部消失异常 + ## [0.0.24] - 2024-09-29 ### Added diff --git a/src/control/data-view/data-view.scss b/src/control/data-view/data-view.scss index 1f6b2d9cfd920fde948fa4f528bad2c26607a988..4d3db9db70a4ea321a9b2ae396884a346953567f 100644 --- a/src/control/data-view/data-view.scss +++ b/src/control/data-view/data-view.scss @@ -1,11 +1,14 @@ $control-dataview: (text-color: getCssVar(color, text, 0), - padding: rem(10px), - margin: getCssVar(spacing, base-tight) getCssVar(spacing, base), + item-padding: rem(10px), + padding: getCssVar(spacing, base-tight) getCssVar(spacing, base), card-margin:getCssVar(spacing, base-tight), + item-margin: calc( getCssVar(spacing, base, tight) / 2 ), ); @include b(control-dataview-item) { - padding: getCssVar(control-dataview, padding); + padding: getCssVar(control-dataview, item-padding); + // 主题缺失,后续补充 + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.12) } @include b(control-dataview) { @@ -15,18 +18,28 @@ $control-dataview: (text-color: getCssVar(color, text, 0), --van-card-thumb-size: auto; - .van-list { + @include e(content) { display: flex; - flex-direction: column; + flex-wrap: wrap; height: 100%; - margin: getCssVar(control-dataview, margin); + width: 100%; + padding: getCssVar(control-dataview, padding); + overflow: hidden auto; - .van-cell { - padding: getCssVar(control-dataview, padding); + &>*{ + margin: getCssVar(control-dataview, item-margin); + flex: none; } } .van-card:not(:first-child) { margin-top: getCssVar(control-dataview, card-margin); } + + @include e(item-row) { + width: 100%; + } + @include e(item-col) { + margin: getCssVar(control-dataview, item-margin) 0; + } } \ No newline at end of file diff --git a/src/control/data-view/data-view.tsx b/src/control/data-view/data-view.tsx index d2ab62a2f2e8c6651ce4ab44ac3c5867e36969f3..d66fe9d914104b0a016abc30164dc31a01a3ef57 100644 --- a/src/control/data-view/data-view.tsx +++ b/src/control/data-view/data-view.tsx @@ -82,6 +82,20 @@ export const DataViewControl = defineComponent({ ); }; + const renderDefaultItem = (item: IData) => { + return ( + c.onRowClick(item)} + > + {{ + footer: () => renderFooter(item), + }} + + ); + }; + // 绘制卡片 const renderCard = (item: IData) => { const model: IDEDataView = c.model; @@ -89,6 +103,7 @@ export const DataViewControl = defineComponent({ const findIndex = c.state.selectedData.findIndex(data => { return data.srfkey === item.srfkey; }); + const panel = props.modelData.itemLayoutPanel; const cardClass = [ns.b('item'), ns.is('active', findIndex !== -1)]; const cardStyle = {}; if (model.cardWidth) { @@ -102,23 +117,33 @@ export const DataViewControl = defineComponent({ }); } return ( - c.onRowClick(item)} > - {{ - footer: () => renderFooter(item), - }} - + {panel ? renderPanelItem(item, panel) : renderDefaultItem(item)} + ); }; const renderDefault = () => { - const panel = props.modelData.itemLayoutPanel; + const { cardColMD } = c.model; + if (cardColMD) { + return ( + + {c.state.items.map(item => { + return ( + + {renderCard(item)} + + ); + })} + + ); + } return c.state.items.map(item => { - return panel ? renderPanelItem(item, panel) : renderCard(item); + return renderCard(item); }); }; @@ -141,14 +166,9 @@ export const DataViewControl = defineComponent({ const renderMDContent = () => { const model: IDEDataView = c.model; return ( - c.loadMore()} - > +
{model.groupMode !== 'NONE' ? renderGroup() : renderDefault()} - +
); }; diff --git a/src/control/list/md-ctrl/md-ctrl.scss b/src/control/list/md-ctrl/md-ctrl.scss index de10dd408b4de7f2f1f35b6d321ae4c61629f883..63504379f9c4c71088a5d9217e706179438a831b 100644 --- a/src/control/list/md-ctrl/md-ctrl.scss +++ b/src/control/list/md-ctrl/md-ctrl.scss @@ -30,7 +30,6 @@ $control-mobmdctrl: ( .van-list { height: 100%; - overflow-y: auto; .van-cell { padding: getCssVar(control-mobmdctrl, padding); @@ -65,6 +64,18 @@ $control-mobmdctrl: ( @include m(right) { margin-right: getCssVar(control-mobmdctrl, right-icon-margin-right); } + + padding: 0.875rem 0; + &::after { + content: ''; + position: relative; + display: block; + bottom: -0.875rem; + left: 1rem; + height: rem(1px); + width: calc(100% - 2rem); + background-color: getCssVar(color, border); + } } @include b(control-mobmdctrl-image) { diff --git a/src/panel-component/view-content-panel-container/view-content-panel-container.scss b/src/panel-component/view-content-panel-container/view-content-panel-container.scss index 0879ec7755d32e94248dbdcf56ff24e555ad0c26..5b716f3b9264e3aa422fff28a9ee2a9a2ef91971 100644 --- a/src/panel-component/view-content-panel-container/view-content-panel-container.scss +++ b/src/panel-component/view-content-panel-container/view-content-panel-container.scss @@ -6,6 +6,7 @@ $panel-component-view-content: ('margin': 0); height: 100%; margin-top: getCssVar('panel-component-view-content', 'margin'); overflow: visible; + background-color: getCssVar(view, bg, color); @include when(scroll) { overflow-y: auto;