mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-08-07 13:09:45 +08:00
refactor(Row): use setup
This commit is contained in:
parent
804a4e0193
commit
6375fe5169
@ -16,25 +16,25 @@ export default createComponent({
|
||||
},
|
||||
|
||||
setup(props, { slots }) {
|
||||
const getStyle = (vm) => {
|
||||
const { index } = vm;
|
||||
const { spaces } = vm.parent || {};
|
||||
|
||||
if (spaces && spaces[index]) {
|
||||
const { left, right } = spaces[index];
|
||||
return {
|
||||
paddingLeft: left ? `${left}px` : null,
|
||||
paddingRight: right ? `${right}px` : null,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
return (vm) => {
|
||||
const { tag, span, offset } = props;
|
||||
|
||||
const getStyle = () => {
|
||||
const { index } = vm;
|
||||
const { spaces } = vm.parent || {};
|
||||
|
||||
if (spaces && spaces[index]) {
|
||||
const { left, right } = spaces[index];
|
||||
return {
|
||||
paddingLeft: left ? `${left}px` : null,
|
||||
paddingRight: right ? `${right}px` : null,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<tag
|
||||
style={getStyle()}
|
||||
style={getStyle(vm)}
|
||||
class={bem({ [span]: span, [`offset-${offset}`]: offset })}
|
||||
>
|
||||
{slots.default?.()}
|
||||
|
@ -20,17 +20,8 @@ export default createComponent({
|
||||
},
|
||||
},
|
||||
|
||||
emits: ['click'],
|
||||
|
||||
computed: {
|
||||
spaces() {
|
||||
const gutter = Number(this.gutter);
|
||||
|
||||
if (!gutter) {
|
||||
return;
|
||||
}
|
||||
|
||||
const spaces = [];
|
||||
groups() {
|
||||
const groups = [[]];
|
||||
|
||||
let totalSpan = 0;
|
||||
@ -45,7 +36,19 @@ export default createComponent({
|
||||
}
|
||||
});
|
||||
|
||||
groups.forEach((group) => {
|
||||
return groups;
|
||||
},
|
||||
|
||||
spaces() {
|
||||
const gutter = Number(this.gutter);
|
||||
|
||||
if (!gutter) {
|
||||
return;
|
||||
}
|
||||
|
||||
const spaces = [];
|
||||
|
||||
this.groups.forEach((group) => {
|
||||
const averagePadding = (gutter * (group.length - 1)) / group.length;
|
||||
|
||||
group.forEach((item, index) => {
|
||||
@ -63,27 +66,22 @@ export default createComponent({
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
onClick(event) {
|
||||
this.$emit('click', event);
|
||||
},
|
||||
},
|
||||
setup(props, { slots }) {
|
||||
return () => {
|
||||
const { tag, type, align, justify } = props;
|
||||
const flex = type === 'flex';
|
||||
|
||||
render() {
|
||||
const { align, justify } = this;
|
||||
const flex = this.type === 'flex';
|
||||
|
||||
return (
|
||||
<this.tag
|
||||
class={bem({
|
||||
flex,
|
||||
[`align-${align}`]: flex && align,
|
||||
[`justify-${justify}`]: flex && justify,
|
||||
})}
|
||||
onClick={this.onClick}
|
||||
>
|
||||
{this.$slots.default?.()}
|
||||
</this.tag>
|
||||
);
|
||||
return (
|
||||
<tag
|
||||
class={bem({
|
||||
flex,
|
||||
[`align-${align}`]: flex && align,
|
||||
[`justify-${justify}`]: flex && justify,
|
||||
})}
|
||||
>
|
||||
{slots.default?.()}
|
||||
</tag>
|
||||
);
|
||||
};
|
||||
},
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user