mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-27 03:46:35 +08:00
feat: add DemoHome components
This commit is contained in:
parent
e23d2a7564
commit
251d3764e4
78
packages/vant-cli/site/mobile/components/DemoHome.vue
Normal file
78
packages/vant-cli/site/mobile/components/DemoHome.vue
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
<template>
|
||||||
|
<div class="demo-home">
|
||||||
|
<h1 class="demo-home__title">
|
||||||
|
<img :src="config.logo">
|
||||||
|
<span>{{ config.title }}</span>
|
||||||
|
</h1>
|
||||||
|
<h2 v-if="config.description" class="demo-home__desc">{{ config.description }}</h2>
|
||||||
|
<template v-for="(group, index) in config.nav">
|
||||||
|
<demo-home-nav
|
||||||
|
:group="group"
|
||||||
|
:base="$vantLang"
|
||||||
|
:key="index"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { config } from '../../../dist/mobile-config';
|
||||||
|
import DemoHomeNav from './DemoHomeNav';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
DemoHomeNav
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
config
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
@import '../../common/style/index';
|
||||||
|
|
||||||
|
.demo-home {
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: 46px 20px 20px;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
|
&__title,
|
||||||
|
&__desc {
|
||||||
|
padding-left: 16px;
|
||||||
|
font-weight: normal;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__title {
|
||||||
|
margin: 0 0 16px;
|
||||||
|
|
||||||
|
img,
|
||||||
|
span {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
margin-left: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 36px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&__desc {
|
||||||
|
margin: 0 0 40px;
|
||||||
|
color: #7d7e80;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
85
packages/vant-cli/site/mobile/components/DemoHomeNav.vue
Normal file
85
packages/vant-cli/site/mobile/components/DemoHomeNav.vue
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<van-collapse
|
||||||
|
v-model="active"
|
||||||
|
:border="false"
|
||||||
|
class="demo-home-nav"
|
||||||
|
>
|
||||||
|
<van-collapse-item
|
||||||
|
class="demo-home-nav__item"
|
||||||
|
:title="group.title"
|
||||||
|
:name="group.title"
|
||||||
|
>
|
||||||
|
<van-icon
|
||||||
|
v-if="group.icon"
|
||||||
|
:name="group.icon"
|
||||||
|
slot="right-icon"
|
||||||
|
class="demo-home-nav__icon"
|
||||||
|
/>
|
||||||
|
<template v-for="(navItem, index) in group.items">
|
||||||
|
<van-cell
|
||||||
|
:key="index"
|
||||||
|
:to="'/' + navItem.path"
|
||||||
|
:title="navItem.title"
|
||||||
|
is-link
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</van-collapse-item>
|
||||||
|
</van-collapse>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { Cell, Icon, Collapse, CollapseItem } from 'vant';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
[Cell.name]: Cell,
|
||||||
|
[Icon.name]: Icon,
|
||||||
|
[Collapse.name]: Collapse,
|
||||||
|
[CollapseItem.name]: CollapseItem
|
||||||
|
},
|
||||||
|
|
||||||
|
props: {
|
||||||
|
base: String,
|
||||||
|
group: Object
|
||||||
|
},
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
active: []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less">
|
||||||
|
@import '../../common/style/index';
|
||||||
|
|
||||||
|
.demo-home-nav {
|
||||||
|
&__item {
|
||||||
|
margin-bottom: 16px;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: 0 1px 5px #ebedf0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&__icon {
|
||||||
|
font-size: 24px;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-collapse-item__content {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-collapse-item__title {
|
||||||
|
align-items: center;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 40px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
x
Reference in New Issue
Block a user