Files
uni-pda/pages/testpages/font-test.vue
T
2026-07-03 11:45:16 +08:00

165 lines
4.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="page-container">
<view class="test-section">
<view class="test-title">字体缩放测试页面</view>
<view class="test-info">
<text class="info-item">当前缩放比例: {{ scale }}</text>
<text class="info-item">根字体大小: {{ rootFontSize }}</text>
</view>
<view class="test-group">
<view class="group-title">使用 class 的字体大小</view>
<view class="test-item">
<text class="text-xs">超小字体 (xs: 10px)</text>
</view>
<view class="test-item">
<text class="text-sm">小字体 (sm: 11px)</text>
</view>
<view class="test-item">
<text class="text-base">基础字体 (base: 13px)</text>
</view>
<view class="test-item">
<text class="text-md">中等字体 (md: 14px)</text>
</view>
<view class="test-item">
<text class="text-lg">大字体 (lg: 16px)</text>
</view>
<view class="test-item">
<text class="text-xl">超大字体 (xl: 20px)</text>
</view>
<view class="test-item">
<text class="text-xxl">特大字体 (xxl: 24px)</text>
</view>
</view>
<view class="test-group">
<view class="group-title">对比测试固定 px vs rem</view>
<view class="test-item">
<text class="fixed-size">固定大小 (14px不应缩放)</text>
</view>
<view class="test-item">
<text class="rem-size">rem 大小 (0.875rem应该缩放)</text>
</view>
</view>
<view class="test-actions">
<button class="btn btn-primary" @click="goToSettings">去设置页面调整字体</button>
<button class="btn btn-outline" @click="refreshTest">刷新测试</button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
scale: 1.0,
rootFontSize: '16px'
}
},
onShow() {
this.refreshTest()
},
methods: {
refreshTest() {
// 从 Vuex 读取当前缩放比例
this.scale = this.$store.state.font.fontScale || 1.0
// 读取根字体大小
try {
if (typeof document !== 'undefined' && document.documentElement) {
this.rootFontSize = getComputedStyle(document.documentElement).fontSize
}
} catch (e) {
this.rootFontSize = '无法获取'
}
},
goToSettings() {
uni.navigateTo({
url: '/pages/settings/index'
})
}
}
}
</script>
<style lang="scss" scoped>
@import '@/styles/variables.scss';
.page-container {
padding: $spacing-md;
}
.test-section {
background: $bg-card;
border-radius: $border-radius-md;
padding: $spacing-md;
}
.test-title {
font-size: $font-size-xl;
font-weight: 600;
color: $text-primary;
margin-bottom: $spacing-md;
text-align: center;
}
.test-info {
background: $bg-primary;
padding: $spacing-sm;
border-radius: $border-radius-sm;
margin-bottom: $spacing-md;
.info-item {
display: block;
font-size: $font-size-sm;
color: $text-secondary;
margin-bottom: $spacing-xs;
}
}
.test-group {
margin-bottom: $spacing-lg;
.group-title {
font-size: $font-size-md;
font-weight: 600;
color: $text-primary;
margin-bottom: $spacing-sm;
padding-bottom: $spacing-xs;
border-bottom: 1px solid $border-color;
}
}
.test-item {
padding: $spacing-sm;
margin-bottom: $spacing-sm;
background: #f9f9f9;
border-radius: $border-radius-sm;
border-left: 3px solid $primary-color;
}
/* 字体大小 class */
.text-xs { font-size: $font-size-xs; }
.text-sm { font-size: $font-size-sm; }
.text-base { font-size: $font-size-base; }
.text-md { font-size: $font-size-md; }
.text-lg { font-size: $font-size-lg; }
.text-xl { font-size: $font-size-xl; }
.text-xxl { font-size: $font-size-xxl; }
/* 对比测试 */
.fixed-size { font-size: 14px; }
.rem-size { font-size: 0.875rem; }
.test-actions {
margin-top: $spacing-lg;
.btn {
margin-bottom: $spacing-sm;
}
}
</style>