64 lines
1.2 KiB
Vue
64 lines
1.2 KiB
Vue
|
<script>
|
||
|
import PropTypes from '../_util/vue-types'
|
||
|
import * as moment from 'moment'
|
||
|
// import { ModalLocale, changeConfirmLocale } from '../modal/locale'
|
||
|
|
||
|
// export interface Locale {
|
||
|
// locale: string;
|
||
|
// Pagination?: Object;
|
||
|
// DatePicker?: Object;
|
||
|
// TimePicker?: Object;
|
||
|
// Calendar?: Object;
|
||
|
// Table?: Object;
|
||
|
// Modal?: ModalLocale;
|
||
|
// Popconfirm?: Object;
|
||
|
// Transfer?: Object;
|
||
|
// Select?: Object;
|
||
|
// Upload?: Object;
|
||
|
// }
|
||
|
|
||
|
function setMomentLocale (locale) {
|
||
|
if (locale && locale.locale) {
|
||
|
moment.locale(locale.locale)
|
||
|
} else {
|
||
|
moment.locale('en')
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export default {
|
||
|
name: 'LocaleProvider',
|
||
|
props: {
|
||
|
locale: PropTypes.object.def({}),
|
||
|
},
|
||
|
provide () {
|
||
|
return {
|
||
|
antLocale: {
|
||
|
...this.locale,
|
||
|
exist: true,
|
||
|
},
|
||
|
}
|
||
|
},
|
||
|
watch: {
|
||
|
locale (val) {
|
||
|
setMomentLocale(val)
|
||
|
},
|
||
|
},
|
||
|
beforeMount () {
|
||
|
const { locale } = this
|
||
|
setMomentLocale(locale)
|
||
|
// changeConfirmLocale(locale && locale.Modal)
|
||
|
},
|
||
|
updated () {
|
||
|
// const { locale } = this
|
||
|
// changeConfirmLocale(locale && locale.Modal)
|
||
|
},
|
||
|
beforeDestroy () {
|
||
|
// changeConfirmLocale()
|
||
|
},
|
||
|
render () {
|
||
|
return this.$slots.default
|
||
|
},
|
||
|
}
|
||
|
|
||
|
</script>
|