import { ActionSheet } from 'vant'; import { defineComponent, PropType, reactive, watch } from 'vue'; import styles from './index.module.less'; type actionsType = { name: string | number; value?: string | number; selected?: boolean; }; export default defineComponent({ name: 'k-action-sheet', props: { show: { type: Boolean, default: false }, actions: { type: Array as PropType, required: true, default: () => [] }, cancelText: { type: String, default: '取消' }, teleport: { type: [String, Element], default: '' } }, emits: ['update:show', 'select'], setup(props, { emit }) { const form = reactive({ oPopover: props.show }); const onSelect = (item: any) => { emit('select', item); emit('update:show', false); }; watch( () => form.oPopover, () => { emit('update:show', form.oPopover); } ); watch( () => props.show, () => { form.oPopover = props.show; } ); return () => (
{props.actions.map((item: any) => (
onSelect(item)}> {item.name}
))}
); } });