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
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>
|
|
|