style: 重构分类组件样式,支持主题化配置字号和按钮样式

1. 为分类树和分类项的文字样式替换为CSS变量,支持远端主题配置
2. 重命名AI咨询按钮的类名和样式变量,统一命名规范
3. 为每个主题预设添加分类页专属的样式token,包含字号、按钮背景和文字颜色
This commit is contained in:
2026-07-07 09:12:06 +08:00
parent 224b409455
commit bd1a9a67e0
3 changed files with 147 additions and 18 deletions

View File

@@ -65,6 +65,22 @@ export default {
hover_nav_text_color: '#000' // 文字颜色: 白色 '#FFFFFF', 黑色: '#000' hover_nav_text_color: '#000' // 文字颜色: 白色 '#FFFFFF', 黑色: '#000'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#FF4646',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#FFFFFF',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 8 preset 一致) ===== // ===== 营销 token(本次统一, 全 8 preset 一致) =====
...{ ...{
// 拼团 // 拼团
@@ -187,6 +203,22 @@ export default {
hover_nav_bg_color: '#19C650',//背景色 hover_nav_bg_color: '#19C650',//背景色
hover_nav_text_color: '#FFFFFF' hover_nav_text_color: '#FFFFFF'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#19C650',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#FFFFFF',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 9 preset 一致) ===== // ===== 营销 token(本次统一, 全 9 preset 一致) =====
...{ ...{
// 拼团 // 拼团
@@ -309,6 +341,22 @@ export default {
hover_nav_bg_color: '#36ABFF',//背景色 hover_nav_bg_color: '#36ABFF',//背景色
hover_nav_text_color: '#FFFFFF' hover_nav_text_color: '#FFFFFF'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#36ABFF',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#FFFFFF',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 9 preset 一致) ===== // ===== 营销 token(本次统一, 全 9 preset 一致) =====
...{ ...{
// 拼团 // 拼团
@@ -431,6 +479,22 @@ export default {
hover_nav_bg_color: '#FF407E',//背景色 hover_nav_bg_color: '#FF407E',//背景色
hover_nav_text_color: '#FFFFFF' hover_nav_text_color: '#FFFFFF'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#FF407E',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#FFFFFF',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 9 preset 一致) ===== // ===== 营销 token(本次统一, 全 9 preset 一致) =====
...{ ...{
// 拼团 // 拼团
@@ -553,6 +617,22 @@ export default {
hover_nav_bg_color: '#CFAF70',//背景色 hover_nav_bg_color: '#CFAF70',//背景色
hover_nav_text_color: '#FFFFFF' hover_nav_text_color: '#FFFFFF'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#CFAF70',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#FFFFFF',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 9 preset 一致) ===== // ===== 营销 token(本次统一, 全 9 preset 一致) =====
...{ ...{
// 拼团 // 拼团
@@ -675,6 +755,22 @@ export default {
hover_nav_bg_color: '#A253FF',//背景色 hover_nav_bg_color: '#A253FF',//背景色
hover_nav_text_color: '#FFFFFF' hover_nav_text_color: '#FFFFFF'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#A253FF',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#FFFFFF',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 9 preset 一致) ===== // ===== 营销 token(本次统一, 全 9 preset 一致) =====
...{ ...{
// 拼团 // 拼团
@@ -797,6 +893,22 @@ export default {
hover_nav_bg_color: '#FFD009',//背景色 hover_nav_bg_color: '#FFD009',//背景色
hover_nav_text_color: '#303133' hover_nav_text_color: '#303133'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#FFD009',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#303133',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 9 preset 一致) ===== // ===== 营销 token(本次统一, 全 9 preset 一致) =====
...{ ...{
// 拼团 // 拼团
@@ -919,6 +1031,22 @@ export default {
hover_nav_bg_color: '#222222',//背景色 hover_nav_bg_color: '#222222',//背景色
hover_nav_text_color: '#FFFFFF' hover_nav_text_color: '#FFFFFF'
}, },
// ===== DIY 分类页字号 token(全 8 preset 一致, 远端可覆写) =====
// SCSS 中通过 var(--diy-category-xxx-size, fallback) 引用
// 字号值带 rpx 单位, uni-app 各端均可正常渲染
...{
diy_category_tree_select_size: '28rpx',// 左侧分类树选中态字号
diy_category_tree_normal_size: '20rpx',// 左侧分类树未选中态字号
diy_category_item_title_size: '26rpx',// 分类标题(如"热销推荐")
diy_category_item_goods_title_size:'28rpx',// 商品模式分类标题(比普通标题大 2rpx)
diy_category_item_name_size: '24rpx',// 分类项名称
diy_category_item_goods_name_size:'28rpx',// 商品名称
diy_category_item_goods_tag_size: '22rpx',// 商品角标
diy_category_item_consult_now_size:'26rpx',// 咨询/AI按钮字号
diy_category_item_consult_now_bg: '#222222',// 咨询/AI按钮背景(独立可调)
diy_category_item_consult_now_text: '#FFFFFF',// 咨询/AI按钮文字(独立可调)
},
// ===== 营销 token(本次统一, 全 9 preset 一致) ===== // ===== 营销 token(本次统一, 全 9 preset 一致) =====
...{ ...{
// 拼团 // 拼团

View File

@@ -72,7 +72,7 @@
@scrolltolower="scrolltolower" @touchstart="touchstart" @touchend="touchend" @scroll="listenScroll"> @scrolltolower="scrolltolower" @touchstart="touchstart" @touchend="touchend" @scroll="listenScroll">
<!--一级分类展示商品显示--> <!--一级分类展示商品显示-->
<view class="category-title" style="font-size: 28rpx;padding-bottom: 0;">{{ category.category_name <view class="category-title" :style="{ fontSize: (themeStyle && themeStyle.diy_category_item_goods_title_size) || '28rpx', paddingBottom: 0 }">{{ category.category_name
}}</view> }}</view>
<!--一级--> <!--一级-->
@@ -117,8 +117,8 @@
<text>{{ showMarketPrice(item) }}</text> <text>{{ showMarketPrice(item) }}</text>
</view> </view>
</view> </view>
<view class="ai-chat-btn-wrap" v-if="item.isinformation == 1"> <view class="consult-now-btn-wrap" v-if="item.isinformation == 1">
<view class="ai-chat-btn" @tap.stop="sendToAIChat(item)"> <view class="consult-now-btn" @tap.stop="sendToAIChat(item)">
{{ $lang('components-diy.diy-category-item.consultNow') }} {{ $lang('components-diy.diy-category-item.consultNow') }}
</view> </view>
</view> </view>
@@ -211,8 +211,8 @@
<text>{{ showMarketPrice(item) }}</text> <text>{{ showMarketPrice(item) }}</text>
</view> </view>
</view> </view>
<view class="ai-chat-btn-wrap" v-if="item.isinformation == 1"> <view class="consult-now-btn-wrap" v-if="item.isinformation == 1">
<view class="ai-chat-btn" @tap.stop="sendToAIChat(item)"> <view class="consult-now-btn" @tap.stop="sendToAIChat(item)">
{{ $lang('components-diy.diy-category-item.consultNow') }} {{ $lang('components-diy.diy-category-item.consultNow') }}
</view> </view>
</view> </view>
@@ -767,7 +767,7 @@ export default {
.category-title { .category-title {
padding: 20rpx 0; padding: 20rpx 0;
font-size: 26rpx; font-size: var(--diy-category-item-title-size, 26rpx);
// font-weight: bold; // font-weight: bold;
color: #222; color: #222;
position: relative; position: relative;
@@ -845,7 +845,7 @@ export default {
text-align: center; text-align: center;
line-height: 1; line-height: 1;
font-size: 24rpx; font-size: var(--diy-category-item-name-size, 24rpx);
} }
} }
} }
@@ -895,7 +895,7 @@ export default {
border-bottom-right-radius: $border-radius; border-bottom-right-radius: $border-radius;
top: 0; top: 0;
left: 0; left: 0;
font-size: $font-size-goods-tag; font-size: var(--diy-category-item-goods-tag-size, 22rpx);
} }
.goods-tag-img { .goods-tag-img {
@@ -922,7 +922,7 @@ export default {
} }
.goods-name { .goods-name {
font-size: $font-size-base; font-size: var(--diy-category-item-goods-name-size, 28rpx);
line-height: 1.3; line-height: 1.3;
margin-top: 20rpx; margin-top: 20rpx;
white-space: nowrap; white-space: nowrap;
@@ -1402,21 +1402,22 @@ export default {
} }
} }
.ai-chat-btn-wrap { .consult-now-btn-wrap {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin-top: auto; margin-top: auto;
padding-top: 10rpx; padding-top: 10rpx;
} }
.ai-chat-btn { .consult-now-btn {
// P0: 角标红 → var(--goods-cart-num-corner) // 兼容: 微信小程序 / 鸿蒙元服务 — background-color / color 接受 var() 无问题
// 兼容: 微信小程序 / 鸿蒙元服务 — background-color 接受 var() 无问题 // 三个属性都用 --diy-category-item-consult-now-* 独立 token,
background-color: var(--goods-cart-num-corner, #ff0000); // 便于后台单独调整(不复用全局 --goods-btn-color 和 --btn-text-color)
color: #fff; background-color: var(--diy-category-item-consult-now-bg, #FF4646);
color: var(--diy-category-item-consult-now-text, #FFFFFF);
padding: 12rpx 30rpx; padding: 12rpx 30rpx;
border-radius: 40rpx; border-radius: 40rpx;
font-size: 26rpx; font-size: var(--diy-category-item-consult-now-size, 26rpx);
font-weight: 500; font-weight: 500;
line-height: 1.2; line-height: 1.2;
text-align: center; text-align: center;

View File

@@ -622,7 +622,7 @@ export default {
white-space: break-word; white-space: break-word;
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
font-size: 10px; font-size: var(--diy-category-tree-normal-size, 20rpx);
} }
&.border-top { &.border-top {
@@ -639,7 +639,7 @@ export default {
view { view {
color: #333; color: #333;
font-weight: bold; font-weight: bold;
font-size: $font-size-base; font-size: var(--diy-category-tree-select-size, 28rpx);
} }
&::before { &::before {