docs(Toast): use setup

This commit is contained in:
chenjiahan 2020-12-15 15:24:49 +08:00
parent 775f0bef47
commit 06f8c19660

View File

@ -31,109 +31,126 @@
</template> </template>
<script> <script>
export default { import { useTranslate } from '@demo/use-translate';
i18n: { import Toast from '..';
'zh-CN': {
fail: '失败提示',
text: '提示内容',
text2: '成功文案',
text3: '失败文案',
text4: (second) => `倒计时 ${second}`,
title1: '文字提示',
title2: '加载提示',
title3: '成功/失败提示',
success: '成功提示',
customIcon: '自定义图标',
customImage: '自定义图片',
loadingType: '自定义加载图标',
positionTop: '顶部展示',
updateMessage: '动态更新提示',
positionBottom: '底部展示',
customPosition: '自定义位置',
},
'en-US': {
fail: 'Fail',
text: 'Some messages',
text2: 'Success',
text3: 'Fail',
text4: (second) => `${second} seconds`,
title1: 'Text',
title2: 'Loading',
title3: 'Success/Fail',
success: 'Success',
customIcon: 'Custom Icon',
customImage: 'Custom Image',
loadingType: 'Loading Type',
positionTop: 'Top',
updateMessage: 'Update Message',
positionBottom: 'Bottom',
customPosition: 'Custom Position',
},
},
methods: { const i18n = {
showLoadingToast(loadingType) { 'zh-CN': {
this.$toast.loading({ fail: '失败提示',
text: '提示内容',
text2: '成功文案',
text3: '失败文案',
text4: (second) => `倒计时 ${second}`,
title1: '文字提示',
title2: '加载提示',
title3: '成功/失败提示',
success: '成功提示',
customIcon: '自定义图标',
customImage: '自定义图片',
loadingType: '自定义加载图标',
positionTop: '顶部展示',
updateMessage: '动态更新提示',
positionBottom: '底部展示',
customPosition: '自定义位置',
},
'en-US': {
fail: 'Fail',
text: 'Some messages',
text2: 'Success',
text3: 'Fail',
text4: (second) => `${second} seconds`,
title1: 'Text',
title2: 'Loading',
title3: 'Success/Fail',
success: 'Success',
customIcon: 'Custom Icon',
customImage: 'Custom Image',
loadingType: 'Loading Type',
positionTop: 'Top',
updateMessage: 'Update Message',
positionBottom: 'Bottom',
customPosition: 'Custom Position',
},
};
export default {
setup() {
const t = useTranslate(i18n);
const showLoadingToast = (loadingType) => {
Toast.loading({
forbidClick: true, forbidClick: true,
message: this.t('loading'), message: t('loading'),
loadingType, loadingType,
}); });
}, };
showSuccessToast() { const showSuccessToast = () => {
this.$toast.success(this.t('text2')); Toast.success(t('text2'));
}, };
showFailToast() { const showFailToast = () => {
this.$toast.fail(this.t('text3')); Toast.fail(t('text3'));
}, };
showTopToast() { const showTopToast = () => {
this.$toast({ Toast({
message: this.t('positionTop'), message: t('positionTop'),
position: 'top', position: 'top',
}); });
}, };
showBottomToast() { const showBottomToast = () => {
this.$toast({ Toast({
message: this.t('positionBottom'), message: t('positionBottom'),
position: 'bottom', position: 'bottom',
}); });
}, };
showIconToast() { const showIconToast = () => {
this.$toast({ Toast({
message: this.t('customIcon'), message: t('customIcon'),
icon: 'like-o', icon: 'like-o',
}); });
}, };
showImageToast() { const showImageToast = () => {
this.$toast({ Toast({
message: this.t('customImage'), message: t('customImage'),
icon: 'https://img.yzcdn.cn/vant/logo.png', icon: 'https://img.yzcdn.cn/vant/logo.png',
}); });
}, };
showCustomizedToast() { const showCustomizedToast = () => {
const toast = this.$toast.loading({ const toast = Toast.loading({
duration: 0, duration: 0,
forbidClick: true, forbidClick: true,
message: this.t('text4', 3), message: t('text4', 3),
}); });
let second = 3; let second = 3;
const timer = setInterval(() => { const timer = setInterval(() => {
second--; second--;
if (second) { if (second) {
toast.message = this.t('text4', second); toast.message = t('text4', second);
} else { } else {
clearInterval(timer); clearInterval(timer);
this.$toast.clear(); Toast.clear();
} }
}, 1000); }, 1000);
}, };
return {
t,
showTopToast,
showFailToast,
showIconToast,
showImageToast,
showBottomToast,
showLoadingToast,
showSuccessToast,
showCustomizedToast,
};
}, },
}; };
</script> </script>