feat: Grid component

This commit is contained in:
chenjiahan
2020-07-06 16:49:07 +08:00
parent 3bf64717b5
commit 660e535811
12 changed files with 1012 additions and 8 deletions

52
src-next/grid/index.js Normal file
View File

@@ -0,0 +1,52 @@
import { createNamespace, addUnit } from '../utils';
import { BORDER_TOP } from '../utils/constant';
import { ParentMixin } from '../mixins/relation';
const [createComponent, bem] = createNamespace('grid');
export default createComponent({
mixins: [ParentMixin('vanGrid')],
props: {
square: Boolean,
gutter: [Number, String],
iconSize: [Number, String],
direction: String,
clickable: Boolean,
columnNum: {
type: [Number, String],
default: 4,
},
center: {
type: Boolean,
default: true,
},
border: {
type: Boolean,
default: true,
},
},
computed: {
style() {
const { gutter } = this;
if (gutter) {
return {
paddingLeft: addUnit(gutter),
};
}
},
},
render() {
return (
<div
style={this.style}
class={[bem(), { [BORDER_TOP]: this.border && !this.gutter }]}
>
{this.$slots.default?.()}
</div>
);
},
});