mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
import { use } from '../../utils';
|
|
import { inherit } from '../../utils/functional';
|
|
import Button from '../../button';
|
|
|
|
// Types
|
|
import Vue, { CreateElement, RenderContext } from 'vue/types';
|
|
import { DefaultSlots } from '../../utils/types';
|
|
|
|
export type SkuActionsProps = {
|
|
buyText?: string;
|
|
skuEventBus: Vue;
|
|
showAddCartBtn?: boolean;
|
|
};
|
|
|
|
const [sfc, bem] = use('sku-actions');
|
|
|
|
function SkuActions(
|
|
h: CreateElement,
|
|
props: SkuActionsProps,
|
|
slots: DefaultSlots,
|
|
ctx: RenderContext<SkuActionsProps>
|
|
) {
|
|
const createEmitter = (name: string) => () => {
|
|
props.skuEventBus.$emit(name);
|
|
};
|
|
|
|
return (
|
|
<div class={bem()} {...inherit(ctx)}>
|
|
{props.showAddCartBtn && (
|
|
<Button
|
|
square
|
|
size="large"
|
|
type="warning"
|
|
text="加入购物车"
|
|
onClick={createEmitter('sku:addCart')}
|
|
/>
|
|
)}
|
|
<Button
|
|
square
|
|
size="large"
|
|
type="danger"
|
|
text={props.buyText || '立即购买'}
|
|
onClick={createEmitter('sku:buy')}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
SkuActions.props = {
|
|
buyText: String,
|
|
skuEventBus: Object,
|
|
showAddCartBtn: Boolean
|
|
};
|
|
|
|
export default sfc<SkuActionsProps>(SkuActions);
|