mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
111 lines
1.9 KiB
Vue
111 lines
1.9 KiB
Vue
<template>
|
|
<div class="app">
|
|
<van-doc
|
|
:lang="lang"
|
|
:config="config"
|
|
:versions="versions"
|
|
:simulator="simulator"
|
|
:lang-configs="langConfigs"
|
|
>
|
|
<router-view />
|
|
</van-doc>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import VanDoc from './components';
|
|
import { config, packageVersion } from 'site-desktop-shared';
|
|
import { setLang } from '../common/locales';
|
|
|
|
function getPublicPath() {
|
|
const { site } = config.build || {};
|
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
return (site && site.publicPath) || '/';
|
|
}
|
|
|
|
return '/';
|
|
}
|
|
|
|
export default {
|
|
components: {
|
|
VanDoc
|
|
},
|
|
|
|
data() {
|
|
return {
|
|
packageVersion,
|
|
simulator: `${getPublicPath()}mobile.html${location.hash}`
|
|
};
|
|
},
|
|
|
|
computed: {
|
|
lang() {
|
|
const { lang } = this.$route.meta;
|
|
return lang || '';
|
|
},
|
|
|
|
langConfigs() {
|
|
const { locales = {} } = config.site;
|
|
return Object.keys(locales).map(key => ({
|
|
lang: key,
|
|
label: locales[key].langLabel || ''
|
|
}));
|
|
},
|
|
|
|
config() {
|
|
const { locales } = config.site;
|
|
|
|
if (locales) {
|
|
return locales[this.lang];
|
|
}
|
|
|
|
return config.site;
|
|
},
|
|
|
|
versions() {
|
|
if (config.site.versions) {
|
|
return [{ label: packageVersion }, ...config.site.versions];
|
|
}
|
|
|
|
return null;
|
|
}
|
|
},
|
|
|
|
watch: {
|
|
lang(val) {
|
|
setLang(val);
|
|
this.setTitle();
|
|
}
|
|
},
|
|
|
|
created() {
|
|
this.setTitle();
|
|
},
|
|
|
|
methods: {
|
|
setTitle() {
|
|
let { title } = this.config;
|
|
|
|
if (this.config.description) {
|
|
title += ` - ${this.config.description}`;
|
|
}
|
|
|
|
document.title = title;
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="less">
|
|
.van-doc-intro {
|
|
padding-top: 20px;
|
|
font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
|
|
text-align: center;
|
|
|
|
p {
|
|
margin-bottom: 20px;
|
|
}
|
|
}
|
|
</style>
|