Compare commits

..

No commits in common. "93e0a95c1d384765090890c2103dfe8c8af2806d" and "f37fb01c4d5ccc1f9fd1e843074c14cda8b77fec" have entirely different histories.

22 changed files with 35 additions and 40 deletions

View File

@ -19,7 +19,7 @@ import { useRect } from '@vant/use';
export default { export default {
setup() { setup() {
const root = ref(); const root = ref();
const rect = useRect(root); const rect = useRect();
console.log(rect); // -> 元素的大小及其相对于视口的位置 console.log(rect); // -> 元素的大小及其相对于视口的位置

View File

@ -30,7 +30,7 @@ function formatValue(
return `-${currency} ${(value / 100).toFixed(2)}`; return `-${currency} ${(value / 100).toFixed(2)}`;
} }
return coupons.length === 0 ? t('noCoupon') : t('count', coupons.length); return coupons.length === 0 ? t('tips') : t('count', coupons.length);
} }
export default defineComponent({ export default defineComponent({

View File

@ -117,7 +117,7 @@ export default defineComponent({
const renderEmpty = () => ( const renderEmpty = () => (
<div class={bem('empty')}> <div class={bem('empty')}>
<img src={props.emptyImage} /> <img src={props.emptyImage} />
<p>{t('noCoupon')}</p> <p>{t('empty')}</p>
</div> </div>
); );

View File

@ -1,9 +1,8 @@
import { ref, defineComponent, ExtractPropTypes } from 'vue'; import { ref, defineComponent, ExtractPropTypes } from 'vue';
import { pick, extend, createNamespace } from '../utils'; import { pick, createNamespace, ComponentInstance, extend } from '../utils';
import { useExpose } from '../composables/use-expose'; import { useExpose } from '../composables/use-expose';
import TimePicker from './TimePicker'; import TimePicker from './TimePicker';
import DatePicker from './DatePicker'; import DatePicker from './DatePicker';
import { DatetimePickerInstance } from './types';
const [name, bem] = createNamespace('datetime-picker'); const [name, bem] = createNamespace('datetime-picker');
@ -21,7 +20,7 @@ export default defineComponent({
props, props,
setup(props, { attrs, slots }) { setup(props, { attrs, slots }) {
const root = ref<DatetimePickerInstance>(); const root = ref<ComponentInstance>();
useExpose({ useExpose({
getPicker: () => root.value?.getPicker(), getPicker: () => root.value?.getPicker(),

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Abbrechen', cancel: 'Abbrechen',
delete: 'Löschen', delete: 'Löschen',
loading: 'Laden...', loading: 'Laden...',
noCoupon: 'Keine Coupons',
nameEmpty: 'Bitte geben Sie den Name an', nameEmpty: 'Bitte geben Sie den Name an',
confirmDelete: 'Sind Sie sicher, dass Sie löschen möchten?', confirmDelete: 'Sind Sie sicher, dass Sie löschen möchten?',
telInvalid: 'Ungültige Telefonnummer', telInvalid: 'Ungültige Telefonnummer',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Coupon', title: 'Coupon',
tips: 'Keine Coupons',
count: (count: number) => `Sie haben ${count} Coupons`, count: (count: number) => `Sie haben ${count} Coupons`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Keine Coupons',
exchange: 'Austauschen', exchange: 'Austauschen',
close: 'Schließen', close: 'Schließen',
enable: 'Verfügbar', enable: 'Verfügbar',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Abbrechen', cancel: 'Abbrechen',
delete: 'Löschen', delete: 'Löschen',
loading: 'Laden...', loading: 'Laden...',
noCoupon: 'Keine Coupons',
nameEmpty: 'Bitte den Name angeben', nameEmpty: 'Bitte den Name angeben',
confirmDelete: 'Bist du sicher, dass du löschen möchtest?', confirmDelete: 'Bist du sicher, dass du löschen möchtest?',
telInvalid: 'Ungültige Telefonnummer', telInvalid: 'Ungültige Telefonnummer',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Coupon', title: 'Coupon',
tips: 'Keine Coupons',
count: (count: number) => `Du hast ${count} Coupons`, count: (count: number) => `Du hast ${count} Coupons`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Keine Coupons',
exchange: 'Austauschen', exchange: 'Austauschen',
close: 'Schließen', close: 'Schließen',
enable: 'Verfügbar', enable: 'Verfügbar',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Cancel', cancel: 'Cancel',
delete: 'Delete', delete: 'Delete',
loading: 'Loading...', loading: 'Loading...',
noCoupon: 'No coupons',
nameEmpty: 'Please fill in the name', nameEmpty: 'Please fill in the name',
confirmDelete: 'Are you sure you want to delete?', confirmDelete: 'Are you sure you want to delete?',
telInvalid: 'Malformed phone number', telInvalid: 'Malformed phone number',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Coupon', title: 'Coupon',
tips: 'No coupons',
count: (count: number) => `You have ${count} coupons`, count: (count: number) => `You have ${count} coupons`,
}, },
vanCouponList: { vanCouponList: {
empty: 'No coupons',
exchange: 'Exchange', exchange: 'Exchange',
close: 'Close', close: 'Close',
enable: 'Available', enable: 'Available',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Cancelar', cancel: 'Cancelar',
delete: 'Eliminar', delete: 'Eliminar',
loading: 'Cargando...', loading: 'Cargando...',
noCoupon: 'Sin cupones',
nameEmpty: 'Por favor rellena el nombre', nameEmpty: 'Por favor rellena el nombre',
confirmDelete: 'Estás seguro de eliminarlo?', confirmDelete: 'Estás seguro de eliminarlo?',
telInvalid: 'Teléfono inválido', telInvalid: 'Teléfono inválido',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Cupón', title: 'Cupón',
tips: 'Sin cupones',
count: (count: number) => `You have ${count} coupons`, count: (count: number) => `You have ${count} coupons`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Sin cupones',
exchange: 'Intercambio', exchange: 'Intercambio',
close: 'Cerrar', close: 'Cerrar',
enable: 'Disponible', enable: 'Disponible',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Annuler', cancel: 'Annuler',
delete: 'Suprimer', delete: 'Suprimer',
loading: 'Chargement...', loading: 'Chargement...',
noCoupon: 'Pas de coupons',
nameEmpty: 'Veuillez remplir le nom', nameEmpty: 'Veuillez remplir le nom',
confirmDelete: 'Êtes-vous sûr de vouloir supprimer?', confirmDelete: 'Êtes-vous sûr de vouloir supprimer?',
telInvalid: 'Numéro de téléphone incorrect', telInvalid: 'Numéro de téléphone incorrect',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Coupon', title: 'Coupon',
tips: 'Pas de coupons',
count: (count: number) => `Vous avez ${count} coupons`, count: (count: number) => `Vous avez ${count} coupons`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Pas de coupons',
exchange: 'Exchange', exchange: 'Exchange',
close: 'Fermer', close: 'Fermer',
enable: 'Disponible', enable: 'Disponible',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'キャンセル', cancel: 'キャンセル',
delete: '削除', delete: '削除',
loading: '読み込み中...', loading: '読み込み中...',
noCoupon: 'クーポンはありません',
nameEmpty: '名前を入力してください', nameEmpty: '名前を入力してください',
confirmDelete: '本当に削除しますか', confirmDelete: '本当に削除しますか',
telInvalid: '正しい電話番号を入力してください', telInvalid: '正しい電話番号を入力してください',
@ -47,9 +46,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'クーポン', title: 'クーポン',
tips: '利用可能なクーポンがありません',
count: (count: number) => `${count}枚が利用可能`, count: (count: number) => `${count}枚が利用可能`,
}, },
vanCouponList: { vanCouponList: {
empty: 'クーポンはありません',
exchange: '両替', exchange: '両替',
close: 'クーポンを使用しません', close: 'クーポンを使用しません',
enable: '利用可能', enable: '利用可能',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Avbryt', cancel: 'Avbryt',
delete: 'Slett', delete: 'Slett',
loading: 'Laster...', loading: 'Laster...',
noCoupon: 'Ingen kuponger',
nameEmpty: 'Vennligst fyll inn navn', nameEmpty: 'Vennligst fyll inn navn',
confirmDelete: 'Er du sikker på at du vil slette?', confirmDelete: 'Er du sikker på at du vil slette?',
telInvalid: 'Ugyldig telefonnummer', telInvalid: 'Ugyldig telefonnummer',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Kupong', title: 'Kupong',
tips: 'Ingen kuponger',
count: (count: number) => `Du har ${count} kuponger`, count: (count: number) => `Du har ${count} kuponger`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Ingen kuponger',
exchange: 'Bytte', exchange: 'Bytte',
close: 'Lukk', close: 'Lukk',
enable: 'Tilgjengelig', enable: 'Tilgjengelig',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Anulează', cancel: 'Anulează',
delete: 'Șterge', delete: 'Șterge',
loading: 'Încărcare...', loading: 'Încărcare...',
noCoupon: 'Fără cupoane',
nameEmpty: 'Te rugăm să completezi numele', nameEmpty: 'Te rugăm să completezi numele',
confirmDelete: 'Ești sigur ca vrei sa stergi?', confirmDelete: 'Ești sigur ca vrei sa stergi?',
telInvalid: 'Număr de telefon invalid', telInvalid: 'Număr de telefon invalid',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Cupon', title: 'Cupon',
tips: 'Fără cupoane',
count: (count: number) => `Ai ${count} cupoane`, count: (count: number) => `Ai ${count} cupoane`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Fără cupoane',
exchange: 'Schimbă', exchange: 'Schimbă',
close: 'Închide', close: 'Închide',
enable: 'Disponibil', enable: 'Disponibil',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'Отмена', cancel: 'Отмена',
delete: 'Удалить', delete: 'Удалить',
loading: 'Загрузка...', loading: 'Загрузка...',
noCoupon: 'Нет купонов',
nameEmpty: 'Пожалуйста укажите имя', nameEmpty: 'Пожалуйста укажите имя',
confirmDelete: 'Вы уверены, что хотите удалить?', confirmDelete: 'Вы уверены, что хотите удалить?',
telInvalid: 'Некорректный номер телефона', telInvalid: 'Некорректный номер телефона',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Купон', title: 'Купон',
tips: 'Нет купонов',
count: (count: number) => `У вас есть ${count} купонов`, count: (count: number) => `У вас есть ${count} купонов`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Нет купонов',
exchange: 'Обмен', exchange: 'Обмен',
close: 'Закрыть', close: 'Закрыть',
enable: 'Доступно', enable: 'Доступно',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'ยกเลิก', cancel: 'ยกเลิก',
delete: 'ลบ', delete: 'ลบ',
loading: 'กำลังโหลด...', loading: 'กำลังโหลด...',
noCoupon: 'ไม่มีคูปอง',
nameEmpty: 'กรุณากรอกชื่อของคุณ', nameEmpty: 'กรุณากรอกชื่อของคุณ',
confirmDelete: 'คุณแน่ใจว่าต้องการลบ', confirmDelete: 'คุณแน่ใจว่าต้องการลบ',
telInvalid: 'กรุณากรอกหมายเลขโทรศัพท์ที่ถูกต้อง', telInvalid: 'กรุณากรอกหมายเลขโทรศัพท์ที่ถูกต้อง',
@ -48,9 +47,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'คูปอง', title: 'คูปอง',
tips: 'ไม่สามารถใช้ได้',
count: (count: number) => `มีรูปภาพ ${count} รูป`, count: (count: number) => `มีรูปภาพ ${count} รูป`,
}, },
vanCouponList: { vanCouponList: {
empty: 'ไม่มีคูปอง',
exchange: 'แลกเปลี่ยน', exchange: 'แลกเปลี่ยน',
close: 'ห้ามใช้คูปอง', close: 'ห้ามใช้คูปอง',
enable: 'พร้อมใช้งาน', enable: 'พร้อมใช้งาน',

View File

@ -6,7 +6,6 @@ export default {
cancel: 'İptal', cancel: 'İptal',
delete: 'Sil', delete: 'Sil',
loading: 'Yükleniyor...', loading: 'Yükleniyor...',
noCoupon: 'Kupon yok',
nameEmpty: 'Lütfen isim giriniz', nameEmpty: 'Lütfen isim giriniz',
confirmDelete: 'Silmek istediğinize emin misiniz?', confirmDelete: 'Silmek istediğinize emin misiniz?',
telInvalid: 'Geçersiz tel. numarası', telInvalid: 'Geçersiz tel. numarası',
@ -46,9 +45,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: 'Kupon', title: 'Kupon',
tips: 'Kupon yok',
count: (count: number) => `${count} adet teklif var`, count: (count: number) => `${count} adet teklif var`,
}, },
vanCouponList: { vanCouponList: {
empty: 'Kupon yok',
exchange: 'Takas', exchange: 'Takas',
close: 'Kapat', close: 'Kapat',
enable: 'Mevcut', enable: 'Mevcut',

View File

@ -6,10 +6,9 @@ export default {
cancel: '取消', cancel: '取消',
delete: '删除', delete: '删除',
loading: '加载中...', loading: '加载中...',
noCoupon: '暂无优惠券',
nameEmpty: '请填写姓名', nameEmpty: '请填写姓名',
confirmDelete: '确定要删除吗', confirmDelete: '确定要删除吗',
telInvalid: '请填写正确的电话', telInvalid: '请输入正确的电话',
vanCalendar: { vanCalendar: {
end: '结束', end: '结束',
start: '开始', start: '开始',
@ -47,9 +46,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: '优惠券', title: '优惠券',
tips: '暂无可用',
count: (count: number) => `${count}张可用`, count: (count: number) => `${count}张可用`,
}, },
vanCouponList: { vanCouponList: {
empty: '暂无优惠券',
exchange: '兑换', exchange: '兑换',
close: '不使用优惠券', close: '不使用优惠券',
enable: '可用', enable: '可用',

View File

@ -6,7 +6,6 @@ export default {
cancel: '取消', cancel: '取消',
delete: '刪除', delete: '刪除',
loading: '加載中...', loading: '加載中...',
noCoupon: '暫無優惠券',
nameEmpty: '請填寫姓名', nameEmpty: '請填寫姓名',
confirmDelete: '確定要刪除嗎', confirmDelete: '確定要刪除嗎',
telInvalid: '請填寫正確的電話', telInvalid: '請填寫正確的電話',
@ -47,9 +46,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: '優惠券', title: '優惠券',
tips: '暫無可用',
count: (count: number) => `${count}張可用`, count: (count: number) => `${count}張可用`,
}, },
vanCouponList: { vanCouponList: {
empty: '暫無優惠券',
exchange: '兌換', exchange: '兌換',
close: '不使用優惠', close: '不使用優惠',
enable: '可使用優惠券', enable: '可使用優惠券',

View File

@ -6,7 +6,6 @@ export default {
cancel: '取消', cancel: '取消',
delete: '刪除', delete: '刪除',
loading: '載入中...', loading: '載入中...',
noCoupon: '暫無優惠券',
nameEmpty: '請填寫姓名', nameEmpty: '請填寫姓名',
confirmDelete: '確定要刪除嗎', confirmDelete: '確定要刪除嗎',
telInvalid: '請填寫正確的電話', telInvalid: '請填寫正確的電話',
@ -47,9 +46,11 @@ export default {
}, },
vanCouponCell: { vanCouponCell: {
title: '優惠券', title: '優惠券',
tips: '暫無可用',
count: (count: number) => `${count}張可用`, count: (count: number) => `${count}張可用`,
}, },
vanCouponList: { vanCouponList: {
empty: '暫無優惠券',
exchange: '兌換', exchange: '兌換',
close: '不使用優惠', close: '不使用優惠',
enable: '可使用優惠券', enable: '可使用優惠券',

View File

@ -102,10 +102,6 @@ export default defineComponent({
type: [String, Object] as PropType<TeleportProps['to']>, type: [String, Object] as PropType<TeleportProps['to']>,
default: 'body', default: 'body',
}, },
showArrow: {
type: Boolean,
default: true,
},
}, },
emits: ['select', 'touchstart', 'update:show'], emits: ['select', 'touchstart', 'update:show'],
@ -238,7 +234,7 @@ export default defineComponent({
{...pick(props, popupProps)} {...pick(props, popupProps)}
{...{ 'onUpdate:show': updateShow }} {...{ 'onUpdate:show': updateShow }}
> >
{props.showArrow && <div class={bem('arrow')} />} <div class={bem('arrow')} />
<div role="menu" class={bem('content')}> <div role="menu" class={bem('content')}>
{slots.default ? slots.default() : props.actions.map(renderAction)} {slots.default ? slots.default() : props.actions.map(renderAction)}
</div> </div>

View File

@ -220,7 +220,6 @@ export default {
| overlay | Whether to show overlay | _boolean_ | `false` | | overlay | Whether to show overlay | _boolean_ | `false` |
| overlay-class `v3.0.10` | Custom overlay class | _string \| Array \| object_ | - | | overlay-class `v3.0.10` | Custom overlay class | _string \| Array \| object_ | - |
| overlay-style `v3.0.10` | Custom overlay style | _object_ | - | | overlay-style `v3.0.10` | Custom overlay style | _object_ | - |
| show-arrow `v3.2.2` | Whether to show arrow | _boolean_ | `true` |
| close-on-click-action | Whether to close when clicking action | _boolean_ | `true` | | close-on-click-action | Whether to close when clicking action | _boolean_ | `true` |
| close-on-click-outside | Whether to close when clicking outside | _boolean_ | `true` | | close-on-click-outside | Whether to close when clicking outside | _boolean_ | `true` |
| close-on-click-overlay `v3.0.10` | Whether to close when clicking overlay | _boolean_ | `true` | | close-on-click-overlay `v3.0.10` | Whether to close when clicking overlay | _boolean_ | `true` |

View File

@ -230,7 +230,6 @@ export default {
| overlay | 是否显示遮罩层 | _boolean_ | `false` | | overlay | 是否显示遮罩层 | _boolean_ | `false` |
| overlay-class `v3.0.10` | 自定义遮罩层类名 | _string \| Array \| object_ | - | | overlay-class `v3.0.10` | 自定义遮罩层类名 | _string \| Array \| object_ | - |
| overlay-style `v3.0.10` | 自定义遮罩层样式 | _object_ | - | | overlay-style `v3.0.10` | 自定义遮罩层样式 | _object_ | - |
| show-arrow `v3.2.2` | 是否展示小箭头 | _boolean_ | `true` |
| close-on-click-action | 是否在点击选项后关闭 | _boolean_ | `true` | | close-on-click-action | 是否在点击选项后关闭 | _boolean_ | `true` |
| close-on-click-outside | 是否在点击外部元素后关闭菜单 | _boolean_ | `true` | | close-on-click-outside | 是否在点击外部元素后关闭菜单 | _boolean_ | `true` |
| close-on-click-overlay `v3.0.10` | 是否在点击遮罩层后关闭菜单 | _boolean_ | `true` | | close-on-click-overlay `v3.0.10` | 是否在点击遮罩层后关闭菜单 | _boolean_ | `true` |

View File

@ -200,15 +200,3 @@ test('should change icon class prefix when using icon-prefix prop', () => {
expect(wrapper.html()).toMatchSnapshot(); expect(wrapper.html()).toMatchSnapshot();
}); });
test('should allow to hide arrow', () => {
const wrapper = mount(Popover, {
props: {
show: true,
teleport: null,
showArrow: false,
},
});
expect(wrapper.find('.van-popover__arrow').exists()).toBeFalsy();
});