移动端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

72 lines
1.3 KiB

<template>
<view class="">
<view class="container" v-if="isTab" :style="{ height: viewHeight }">
<s-header :title="title" :isTab="isTab" :isCustom="isCustom" @goback="$emit('goback')">
<slot name="header"></slot>
</s-header>
<view class="view">
<view class="inner">
<slot></slot>
</view>
</view>
<s-tabber :selected="selected" :isTab="isTab" v-if="isTab" />
</view>
<view v-else>
<slot></slot>
</view>
</view>
</template>
<script>
export default {
name: 'cs-page',
props: {
selected: Number,
title: String,
isTab: {
type: Boolean,
default: false
},
isCustom: {
type: Boolean,
default: false
}
},
data() {
return {
viewHeight: '0px'
}
},
created() {
this.getViewHeight()
},
methods: {
getViewHeight() {
uni.getSystemInfoAsync({
success: res => {
this.viewHeight = `${res.screenHeight}px`
}
})
}
}
}
</script>
<style lang="scss" scoped>
.container {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto 1fr auto;
.view {
position: relative;
width: 100%;
height: 100%;
.inner {
position: absolute;
overflow: hidden;
inset: 0;
background-color: #f9f9f9;
}
}
}
</style>