Files
app-govern/components/Cn-page/Cn-page.vue

64 lines
1.3 KiB
Vue
Raw Normal View History

2023-01-11 16:33:13 +08:00
<template>
2023-02-06 13:34:15 +08:00
<view class="Cn-page" :class="{ 'no-padding': noPadding }">
2023-01-11 16:33:13 +08:00
<template v-if="showLoginMsk && !login">
2023-01-13 16:32:56 +08:00
<navigator url="/pages/user/login" hover-class="none" class="page-login-btn">登录</navigator>
2023-01-11 16:33:13 +08:00
</template>
<template v-else>
2023-08-30 10:03:07 +08:00
<zero-loading v-if="loading" mask></zero-loading>
<slot name="body" v-if="beforeRender|| !loading "></slot>
2023-01-11 16:33:13 +08:00
</template>
</view>
</template>
2023-07-31 09:00:30 +08:00
<script>
2023-01-11 16:33:13 +08:00
export default {
name: 'Cn-page',
props: {
loading: {
type: Boolean,
2023-07-31 09:00:30 +08:00
default: false,
2023-01-11 16:33:13 +08:00
},
2023-08-30 10:03:07 +08:00
beforeRender: {
type: Boolean,
default: false,
},
2023-01-11 16:33:13 +08:00
showLoginMsk: Boolean,
2023-02-06 13:34:15 +08:00
noPadding: Boolean,
2023-01-11 16:33:13 +08:00
},
2023-07-31 09:00:30 +08:00
data() {
2023-01-11 16:33:13 +08:00
return {
login: false,
}
},
2023-07-31 09:00:30 +08:00
created() {
2023-01-11 16:33:13 +08:00
this.login = uni.getStorageSync('Authorization')
},
}
</script>
2023-07-31 09:00:30 +08:00
<style lang="scss">
2023-01-11 16:33:13 +08:00
.Cn-page {
box-sizing: border-box;
padding-bottom: calc(30rpx + env(safe-area-inset-bottom));
}
2023-02-06 13:34:15 +08:00
.no-padding {
padding-bottom: 0;
}
2023-01-11 16:33:13 +08:00
.page-login-btn {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
height: 80rpx;
width: 200rpx;
display: flex;
align-items: center;
justify-content: center;
background: #449dff;
color: #fff;
border-radius: 4rpx;
}
</style>