整合api请求、添加购买会员卡页面、登陆页面

This commit is contained in:
future
2026-06-23 22:17:53 +08:00
parent 1c547a717e
commit 8d8c823616
70 changed files with 7666 additions and 2656 deletions
@@ -27,80 +27,75 @@
</view>
</template>
<script>
export default {
options: {
virtualHost: false,
styleIsolation: 'apply-shared'
},
props: {
title: { type: String, required: true },
rightText: { type: String, default: '' },
actionButton: { type: Boolean, default: false }
},
emits: ['back', 'right-action'],
data() {
return {
toolbarStyle: {},
toolbarSpacerStyle: {},
capsuleStyle: {},
isH5: false
<script setup>
import { ref, onMounted, nextTick } from 'vue'
const props = defineProps({
title: { type: String, required: true },
rightText: { type: String, default: '' },
actionButton: { type: Boolean, default: false }
})
defineEmits(['back', 'right-action'])
const toolbarStyle = ref({})
const toolbarSpacerStyle = ref({})
const capsuleStyle = ref({})
const isH5 = ref(false)
function syncNavSafeArea() {
try {
const sys = uni.getSystemInfoSync()
const statusBarHeight = sys.statusBarHeight || 0
const navHeight = 44
const extraGap = 4
const menu = uni.getMenuButtonBoundingClientRect?.()
// #ifdef H5
isH5.value = true
// #endif
// #ifndef H5
isH5.value = false
// #endif
if (!isH5.value && typeof window !== 'undefined' && !menu?.width) {
isH5.value = sys.uniPlatform === 'web' || sys.platform === 'web'
}
},
mounted() {
this.syncNavSafeArea()
this.$nextTick(() => {
setTimeout(() => this.syncNavSafeArea(), 50)
})
},
methods: {
syncNavSafeArea() {
try {
const sys = uni.getSystemInfoSync()
const statusBarHeight = sys.statusBarHeight || 0
const navHeight = 44
const extraGap = 4
const menu = uni.getMenuButtonBoundingClientRect?.()
// #ifdef H5
this.isH5 = true
// #endif
// #ifndef H5
this.isH5 = false
// #endif
if (!this.isH5 && typeof window !== 'undefined' && !menu?.width) {
this.isH5 = sys.uniPlatform === 'web' || sys.platform === 'web'
}
this.toolbarStyle = {
paddingTop: `${statusBarHeight}px`
}
toolbarStyle.value = {
paddingTop: `${statusBarHeight}px`
}
this.toolbarSpacerStyle = {
height: `${statusBarHeight + navHeight + extraGap}px`
}
toolbarSpacerStyle.value = {
height: `${statusBarHeight + navHeight + extraGap}px`
}
if (!this.isH5 && menu && menu.width) {
const capsuleGap = sys.windowWidth - menu.left + 8
this.capsuleStyle = {
width: `${capsuleGap}px`,
minWidth: `${capsuleGap}px`
}
} else {
this.capsuleStyle = {
width: '0px',
minWidth: '0px'
}
}
} catch (e) {
this.toolbarSpacerStyle = { height: '44px' }
this.isH5 = true
this.capsuleStyle = { width: '0px', minWidth: '0px' }
if (!isH5.value && menu && menu.width) {
const capsuleGap = sys.windowWidth - menu.left + 8
capsuleStyle.value = {
width: `${capsuleGap}px`,
minWidth: `${capsuleGap}px`
}
} else {
capsuleStyle.value = {
width: '0px',
minWidth: '0px'
}
}
} catch (e) {
toolbarSpacerStyle.value = { height: '44px' }
isH5.value = true
capsuleStyle.value = { width: '0px', minWidth: '0px' }
}
}
onMounted(() => {
syncNavSafeArea()
nextTick(() => {
setTimeout(() => syncNavSafeArea(), 50)
})
})
</script>
<style>
<style lang="scss">
@import '@/common/style/memberInfo/member-info-sub-nav.css';
</style>