修改拼团逻辑处理

This commit is contained in:
于肖磊
2026-05-27 09:29:43 +08:00
parent 29116bfc7a
commit a8e73a4282
9 changed files with 181 additions and 80 deletions

View File

@ -1,9 +1,9 @@
<template>
<card-container class="card-container">
<div class="mb-12">商品显示内容</div>
<div class="mb-12">{{ moduleType === 'groupbuy' ? '拼团显示内容' : '商品显示内容' }}</div>
<el-form-item label="是否显示">
<el-checkbox-group v-model="form.is_show">
<el-checkbox v-for="item in base_list.list_show_list.filter(item => item.type.includes(form.theme))" :key="item.value" :value="item.value">{{ item.name }}</el-checkbox>
<el-checkbox v-for="item in list_show_list.filter(item => item.type.includes(form.theme))" :key="item.value" :value="item.value">{{ item.name }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item v-if="form.is_show.includes('simple_desc')" label="简述行数">
@ -11,7 +11,7 @@
<el-radio v-for="item in base_list.shopping_simple_desc_row" :key="item.value" :value="item.value">{{ item.name }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="['0', '1', '2'].includes(form.theme)" label="价格独行">
<el-form-item v-if="showPriceSolo && ['0', '1', '2'].includes(form.theme)" label="价格独行">
<el-switch v-model="form.is_price_solo" active-value="1" inactive-value="0"></el-switch>
</el-form-item>
</card-container>
@ -34,7 +34,7 @@
</template>
</div>
</el-form-item>
<el-form-item label="按钮效果">
<el-form-item v-if="showButtonEffect" label="按钮效果">
<el-radio-group v-model="form.shop_button_effect">
<el-radio v-for="item in base_list.shopping_cart_list" :key="item.value" :value="item.value">{{ item.name }}</el-radio>
</el-radio-group>
@ -48,42 +48,81 @@ const props = defineProps({
type: Object,
default: () => ({}),
},
/** goods 默认groupbuy 拼团专用文案与 is_show 项 */
moduleType: {
type: String as PropType<'goods' | 'groupbuy'>,
default: 'goods',
},
hideSalesCount: {
type: Boolean,
default: false,
},
hideButtonEffect: {
type: Boolean,
default: false,
},
hidePriceSolo: {
type: Boolean,
default: false,
},
});
const state = reactive({
form: props.value,
});
// 如果需要解构确保使用toRefs
const { form } = toRefs(state);
const base_list = {
list_show_list: [
{ name: '商品名称', value: 'title', type:['0', '1', '2', '3', '4', '5', '6']},
{ name: '商品简述', value: 'simple_desc', type:['0', '1', '2', '3', '5'] },
{ name: '商品标签', value: 'plugins_view_icon', type:['0', '1', '2'] },
{ name: '商品售价', value: 'price', type:['0', '1', '2', '3', '4', '5', '6'] },
{ name: '商品销量', value: 'sales_count', type:['0', '1', '2'] },
// { name: '商品评分', value: '4' },
{ name: '商品原价', value: 'original_price', type:['0', '1', '2'] },
{ name: '售价单位', value: 'price_unit', type:['0', '1', '2', '3', '4', '5', '6'] },
{ name: '原价单位', value: 'original_price_unit', type:['0', '1', '2'] },
],
shopping_button_list: [
{ name: '文字', value: 'text' },
{ name: '图标', value: 'icon' },
],
shopping_cart_list: [
{ name: '进入商品详情页', value: '0' },
{ name: '商品加购', value: '1' }
{ name: '商品加购', value: '1' },
],
shopping_simple_desc_row: [
{ name: '一行', value: '1' },
{ name: '两行', value: '2' }
]
{ name: '两行', value: '2' },
],
};
const goods_list_show_list = [
{ name: '商品名称', value: 'title', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '商品简述', value: 'simple_desc', type: ['0', '1', '2', '3', '5'] },
{ name: '商品标签', value: 'plugins_view_icon', type: ['0', '1', '2'] },
{ name: '商品售价', value: 'price', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '商品销量', value: 'sales_count', type: ['0', '1', '2'] },
{ name: '商品原价', value: 'original_price', type: ['0', '1', '2'] },
{ name: '售价单位', value: 'price_unit', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '原价单位', value: 'original_price_unit', type: ['0', '1', '2'] },
];
const groupbuy_list_show_list = [
{ name: '商品标题', value: 'title', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '团购标志', value: 'groupbuy_people_num', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '拼团提示', value: 'groupbuy_hot', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '商品售价', value: 'price', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '商品原价', value: 'original_price', type: ['0', '1', '2'] },
{ name: '售价单位', value: 'price_unit', type: ['0', '1', '2', '3', '4', '5', '6'] },
{ name: '原价单位', value: 'original_price_unit', type: ['0', '1', '2'] },
];
const list_show_list = computed(() => {
let list = props.moduleType === 'groupbuy' ? groupbuy_list_show_list : goods_list_show_list;
if (props.hideSalesCount) {
list = list.filter((item) => item.value !== 'sales_count');
}
return list;
});
const showPriceSolo = computed(() => !props.hidePriceSolo);
const showButtonEffect = computed(() => !props.hideButtonEffect);
const emit = defineEmits(['change_shop_type']);
const change_shop_type = () => {
emit('change_shop_type');
}
};
</script>
<style lang="scss" scoped>
@ -112,7 +151,7 @@ const change_shop_type = () => {
font-weight: bold;
}
}
:deep(.el-checkbox-group .el-checkbox){
:deep(.el-checkbox-group .el-checkbox) {
margin-right: 2rem;
}
</style>
</style>

View File

@ -31,6 +31,7 @@
</template>
</el-table-column>
<el-table-column prop="title" label="标题" />
<el-table-column prop="is_recommend_name" label="是否推荐" width="100" />
<template #empty>
<no-data :text="empty_text"></no-data>
</template>

View File

@ -7,8 +7,14 @@
<div :class="['oh w h', ['0', '4'].includes(theme) ? 'flex-row' : 'flex-col' ]" :style="layout_img_style">
<template v-if="theme == '6'">
<div :class="['flex-row align-c jc-sb ptb-15 mlr-10 gap-20', { 'br-b-e': index != list.length - 1 }]">
<div v-if="is_show('title')" :class="text_line" :style="trends_config('title', 'title')">{{ item.title }}</div>
<div v-if="is_show('price') && !isEmpty(item.min_price)" class="num nowrap" :style="`color: ${new_style.shop_price_color}`">
<div class="groupbuy-noimg-row flex-row align-c flex-1 oh">
<div v-if="is_show('title')" :class="[text_line, 'groupbuy-noimg-title']" :style="trends_config('title', 'title')">{{ item.title }}</div>
<div v-if="show_groupbuy_tags" class="flex-row align-c groupbuy-tags-row flex-shrink">
<div v-if="is_show('groupbuy_people_num') && !isEmpty(groupbuy_people_text(item))" class="radius-sm pl-3 pr-3 groupbuy-people-tag" :style="groupbuy_people_tag_style">{{ groupbuy_people_text(item) }}</div>
<span v-if="is_show('groupbuy_hot') && !isEmpty(groupbuy_success_text(item))" class="groupbuy-hot-text" :style="groupbuy_hot_text_style">{{ groupbuy_success_text(item) }}</span>
</div>
</div>
<div v-if="is_show('price') && !isEmpty(item.min_price)" class="num nowrap flex-shrink" :style="`color: ${new_style.shop_price_color}`">
<span class="identifying">{{ item.show_price_symbol }}</span
><span :style="trends_config('price')">{{ item.min_price }}</span>
<span v-if="is_show('price_unit')" class="identifying">{{ item.show_price_unit }}</span>
@ -28,14 +34,15 @@
<subscript-index :value="props.value"></subscript-index>
</div>
</template>
<div v-if="is_show('title') || is_show('simple_desc') || is_show('price') || is_show('original_price') || is_show('plugins_view_icon') || form.is_shop_show == '1'" class="flex-col flex-1 jc-sb content gap-10" :style="content_style">
<div v-if="is_show('title') || is_show('simple_desc') || is_show('price') || is_show('original_price') || show_groupbuy_tags || form.is_shop_show == '1'" class="flex-col flex-1 jc-sb content gap-10" :style="content_style">
<div class="flex-col gap-10 top-title">
<div v-if="is_show('title') || (['0', '1', '2', '3', '5'].includes(theme) && is_show('simple_desc'))" class="flex-col" :style="`gap: ${ new_style.title_simple_desc_spacing }px;`">
<div v-if="is_show('title')" :class="text_line" :style="trends_config('title', 'title')">{{ item.title }}</div>
<div v-if="['0', '1', '2', '3', '5'].includes(theme) && is_show('simple_desc')" :class="form.simple_desc_row == '2' ? 'text-line-2' : 'text-line-1'" :style="trends_config('simple_desc', 'desc')">{{ item.simple_desc }}</div>
</div>
<div v-if="show_content && is_show('plugins_view_icon') && !isEmpty(item.plugins_view_icon_data)" class="flex-row gap-5 align-c">
<div v-for="(icon_data, icon_index) in item.plugins_view_icon_data" :key="icon_index" class="radius-sm size-9 pl-3 pr-3" :style="icon_style(icon_data)">{{ icon_data.name }}</div>
<div v-if="show_groupbuy_tags" class="flex-row align-c groupbuy-tags-row">
<div v-if="is_show('groupbuy_people_num') && !isEmpty(groupbuy_people_text(item))" class="radius-sm pl-3 pr-3 groupbuy-people-tag" :style="groupbuy_people_tag_style">{{ groupbuy_people_text(item) }}</div>
<span v-if="is_show('groupbuy_hot') && !isEmpty(groupbuy_success_text(item))" class="groupbuy-hot-text" :style="groupbuy_hot_text_style">{{ groupbuy_success_text(item) }}</span>
</div>
</div>
<div class="flex-row align-c jc-sb gap-8 oh">
@ -84,14 +91,15 @@
<subscript-index :value="props.value"></subscript-index>
</div>
</template>
<div v-if="is_show('title') || is_show('simple_desc') || is_show('price') || form.is_shop_show == '1'" class="flex-col flex-1 jc-sb content gap-10" :style="content_style">
<div v-if="is_show('title') || is_show('simple_desc') || is_show('price') || show_groupbuy_tags || form.is_shop_show == '1'" class="flex-col flex-1 jc-sb content gap-10" :style="content_style">
<div class="flex-col gap-10 top-title">
<div v-if="is_show('title') || (['0', '1', '2', '3', '5'].includes(theme) && is_show('simple_desc'))" class="flex-col" :style="`gap: ${ new_style.title_simple_desc_spacing }px;`">
<div v-if="is_show('title')" :class="text_line" :style="trends_config('title', 'title')">{{ item.title }}</div>
<div v-if="['0', '1', '2', '3', '5'].includes(theme) && is_show('simple_desc')" :class="form.simple_desc_row == '2' ? 'text-line-2' : 'text-line-1'" :style="trends_config('simple_desc', 'desc')">{{ item.simple_desc }}</div>
</div>
<div v-if="show_content && is_show('plugins_view_icon') && !isEmpty(item.plugins_view_icon_data)" class="flex-row gap-5 align-c">
<div v-for="(icon_data, icon_index) in item.plugins_view_icon_data" :key="icon_index" class="radius-sm size-9 pl-3 pr-3" :style="icon_style(icon_data)">{{ icon_data.name }}</div>
<div v-if="show_groupbuy_tags" class="flex-row align-c groupbuy-tags-row">
<div v-if="is_show('groupbuy_people_num') && !isEmpty(groupbuy_people_text(item))" class="radius-sm pl-3 pr-3 groupbuy-people-tag" :style="groupbuy_people_tag_style">{{ groupbuy_people_text(item) }}</div>
<span v-if="is_show('groupbuy_hot') && !isEmpty(groupbuy_success_text(item))" class="groupbuy-hot-text" :style="groupbuy_hot_text_style">{{ groupbuy_success_text(item) }}</span>
</div>
</div>
<div class="flex-row align-c jc-sb gap-8">
@ -163,13 +171,6 @@ const props = defineProps({
const form = computed(() => props.value?.content || {});
const new_style = computed(() => props.value?.style || {});
type plugins_icon_data = {
name: string;
bg_color: string;
br_color: string;
color: string;
url: string;
}
type data_list = {
title: string;
cover: string;
@ -184,10 +185,12 @@ type data_list = {
show_price_unit: string;
sales_count: string;
is_error: number;
plugins_view_icon_data: plugins_icon_data[];
buy_number?: string | number;
group_number?: string | number;
groupbuy_success_text?: string;
}
const default_list = {
title: '测试商品标题',
title: '测试拼团商品标题',
min_original_price: '41.2',
show_original_price_symbol: '¥',
show_original_price_unit: '/ 台',
@ -198,29 +201,27 @@ const default_list = {
cover: '',
new_cover: [],
is_error: 0,
plugins_view_icon_data: [
{
name: '满减活动',
bg_color: '#EA3323',
br_color: '',
color: '#fff',
url: '',
},
{
name: '包邮',
bg_color: '',
br_color: '#EA3323',
color: '#EA3323',
url: '',
},
{
name: '领劵',
bg_color: '',
br_color: '#EA9223',
color: '#EA9223',
url: '',
},
],
buy_number: 3,
groupbuy_success_text: '火热拼团中',
};
const groupbuy_success_text = (item: data_list) => item.groupbuy_success_text || '';
const groupbuy_people_tag_style = computed(() => {
const color = new_style.value.shop_groupbuy_people_color || '#EA3323';
const border = new_style.value.shop_groupbuy_people_border_color || color;
const size = new_style.value.shop_groupbuy_people_size || 9;
return `background: transparent; color: ${color}; border: 1px solid ${border}; font-size: ${size}px; line-height: ${size + 4}px;`;
});
const groupbuy_hot_text_style = computed(() => {
const color = new_style.value.shop_groupbuy_hot_color || '#999999';
const size = new_style.value.shop_groupbuy_hot_size || 10;
return `color: ${color}; font-size: ${size}px; line-height: ${size}px;`;
});
const groupbuy_people_text = (item: data_list) => {
const num = item.buy_number ?? item.group_number;
if (num !== undefined && num !== null && num !== '') {
return `${num}人团`;
}
return '';
};
//#region 列表数据
const list = ref<data_list[]>([]);
@ -403,6 +404,7 @@ const text_line = computed(() => {
const is_show = (index: string) => {
return form.value.is_show.includes(index);
};
const show_groupbuy_tags = computed(() => is_show('groupbuy_people_num') || is_show('groupbuy_hot'));
// 根据传递的参数,从对象中取值
const trends_config = (key: string, type?: string) => {
return style_config(new_style.value[`shop_${key}_typeface`], new_style.value[`shop_${key}_size`], new_style.value[`shop_${key}_color`], type);
@ -433,16 +435,6 @@ const style_config = (typeface: string, size: number, color: string | object, ty
const button_gradient = () => {
return gradient_handle(new_style.value.shop_button_color, '180deg');
};
// icon标志显示样式
const icon_style = (item: { bg_color: string; color: string; br_color: string }) => {
let style = `background: ${item.bg_color};color: ${item.color};`;
if (!isEmpty(item.br_color)) {
style += `border: 1px solid ${item.br_color};`;
} else {
style += `border: 1px solid ${item.bg_color};`;
}
return style;
};
// 公共样式
const style_container = computed(() => props.isCommonStyle ? common_styles_computer(new_style.value.common_style) : '');
const style_img_container = computed(() => props.isCommonStyle ? common_img_computer(new_style.value.common_style) : '');
@ -524,6 +516,27 @@ watchEffect(() => {
.identifying {
font-size: 0.9rem;
}
/* 无图模式:标题左对齐,团购标志/拼团提示在标题右侧 */
.groupbuy-noimg-row {
gap: 10px;
min-width: 0;
}
.groupbuy-noimg-title {
flex: 0 1 auto;
min-width: 0;
text-align: left;
}
.groupbuy-tags-row {
flex-wrap: nowrap;
gap: 10px;
}
.groupbuy-people-tag {
flex-shrink: 0;
}
.groupbuy-hot-text {
flex-shrink: 0;
white-space: nowrap;
}
// .original-price-left {
// width: 1rem;
// }

View File

@ -29,7 +29,7 @@
</card-container>
<div class="divider-line"></div>
<!-- 商品显示的配置信息 -->
<product-show-config :value="form" hide-sales-count hide-button-effect hide-price-solo @change_shop_type="change_shop_type"></product-show-config>
<product-show-config :value="form" module-type="groupbuy" hide-sales-count hide-button-effect hide-price-solo @change_shop_type="change_shop_type"></product-show-config>
<div class="divider-line"></div>
<card-container class="card-container">
<div class="mb-12">角标设置</div>

View File

@ -7,10 +7,24 @@
<background-common v-model:color_list="form.shop_color_list" v-model:direction="form.shop_direction" v-model:img_style="form.shop_background_img_style" v-model:img="form.shop_background_img" @mult_color_picker_event="mult_color_picker_event" />
</el-form-item>
<template v-if="data.is_show.includes('title')">
<el-form-item label="商品名称">
<el-form-item label="商品标题">
<color-text-size-group v-model:color="form.shop_title_color" v-model:typeface="form.shop_title_typeface" v-model:size="form.shop_title_size" default-color="#000000"></color-text-size-group>
</el-form-item>
</template>
<template v-if="data.is_show.includes('groupbuy_people_num')">
<el-form-item label="团购标志">
<color-text-size-group v-model:color="form.shop_groupbuy_people_color" v-model:size="form.shop_groupbuy_people_size" default-color="#EA3323" :type-list="['color', 'size']">
<el-form-item label="边框" label-width="40" class="mb-0 w form-item-child-label">
<color-picker v-model="form.shop_groupbuy_people_border_color" default-color="#EA3323"></color-picker>
</el-form-item>
</color-text-size-group>
</el-form-item>
</template>
<template v-if="data.is_show.includes('groupbuy_hot')">
<el-form-item label="拼团提示">
<color-text-size-group v-model:color="form.shop_groupbuy_hot_color" v-model:size="form.shop_groupbuy_hot_size" default-color="#999999" :type-list="['color', 'size']"></color-text-size-group>
</el-form-item>
</template>
<template v-if="data.is_show.includes('simple_desc') && ['0', '1', '2', '3', '5'].includes(theme)">
<el-form-item label="商品简述">
<color-text-size-group v-model:color="form.shop_simple_desc_color" v-model:size="form.shop_simple_desc_size" default-color="#999" :type-list="['color', 'size']">

View File

@ -88,7 +88,7 @@
</card-container>
<div class="divider-line"></div>
<!-- 商品显示的配置信息 -->
<product-show-config :value="form" hide-sales-count hide-button-effect hide-price-solo @change_shop_type="change_shop_type"></product-show-config>
<product-show-config :value="form" module-type="groupbuy" hide-sales-count hide-button-effect hide-price-solo @change_shop_type="change_shop_type"></product-show-config>
<div class="divider-line"></div>
<card-container>
<div class="mb-12">角标设置</div>

View File

@ -119,10 +119,24 @@
<background-common v-model:color_list="form.shop_color_list" v-model:direction="form.shop_direction" v-model:img_style="form.shop_background_img_style" v-model:img="form.shop_background_img" @mult_color_picker_event="mult_color_picker_event" />
</el-form-item>
<template v-if="data.is_show.includes('title')">
<el-form-item label="商品名称">
<el-form-item label="商品标题">
<color-text-size-group v-model:color="form.shop_title_color" v-model:typeface="form.shop_title_typeface" v-model:size="form.shop_title_size" default-color="#000000"></color-text-size-group>
</el-form-item>
</template>
<template v-if="data.is_show.includes('groupbuy_people_num')">
<el-form-item label="团购标志">
<color-text-size-group v-model:color="form.shop_groupbuy_people_color" v-model:size="form.shop_groupbuy_people_size" default-color="#EA3323" :type-list="['color', 'size']">
<el-form-item label="边框" label-width="40" class="mb-0 w form-item-child-label">
<color-picker v-model="form.shop_groupbuy_people_border_color" default-color="#EA3323"></color-picker>
</el-form-item>
</color-text-size-group>
</el-form-item>
</template>
<template v-if="data.is_show.includes('groupbuy_hot')">
<el-form-item label="拼团提示">
<color-text-size-group v-model:color="form.shop_groupbuy_hot_color" v-model:size="form.shop_groupbuy_hot_size" default-color="#999999" :type-list="['color', 'size']"></color-text-size-group>
</el-form-item>
</template>
<template v-if="data.is_show.includes('simple_desc') && ['0', '1', '2', '3', '5'].includes(theme)">
<el-form-item label="商品简述">
<color-text-size-group v-model:color="form.shop_simple_desc_color" v-model:size="form.shop_simple_desc_size" default-color="#999" :type-list="['color', 'size']">

View File

@ -78,6 +78,11 @@ interface DefaultPluginsGroupbuyList {
shop_price_unit_size: number;
shop_original_price_color: string;
shop_original_price_size: number;
shop_groupbuy_people_color: string;
shop_groupbuy_people_border_color: string;
shop_groupbuy_people_size: number;
shop_groupbuy_hot_color: string;
shop_groupbuy_hot_size: number;
shop_sold_number_typeface: string;
shop_sold_number_size: number;
shop_sold_number_color: string;
@ -123,7 +128,7 @@ const defaultPluginsGroupbuyList: DefaultPluginsGroupbuyList = {
order_by_type: defaultSetting.order_by_type,
order_by_rule: defaultSetting.order_by_rule,
// 显示内容
is_show: ['title', 'plugins_view_icon', 'price', 'original_price'],
is_show: ['title', 'groupbuy_people_num', 'groupbuy_hot', 'price', 'original_price'],
simple_desc_row: '1',
// 价格图标地址
static_img: [{ id: 2, url: new_url + 'price.png', original: '角标', title: '角标', ext: '.png', type: 'img' }],
@ -131,7 +136,7 @@ const defaultPluginsGroupbuyList: DefaultPluginsGroupbuyList = {
is_shop_show: '1',
// 购买按钮类型
shop_type: 'text',
shop_button_text: '购买',
shop_button_text: '开团中',
shop_button_icon_class: 'cart',
// 点击购买按钮的操作处理
shop_button_effect: '0',
@ -223,6 +228,11 @@ const defaultPluginsGroupbuyList: DefaultPluginsGroupbuyList = {
shop_price_unit_size: 9,
shop_original_price_color: '#999',
shop_original_price_size: 12,
shop_groupbuy_people_color: '#EA3323',
shop_groupbuy_people_border_color: '#EA3323',
shop_groupbuy_people_size: 9,
shop_groupbuy_hot_color: '#999999',
shop_groupbuy_hot_size: 10,
shop_sold_number_typeface: '400',
shop_sold_number_size: 10,
shop_sold_number_color: "#999999",

View File

@ -136,6 +136,11 @@ interface DefaultProductList {
shop_price_unit_size: number;
shop_original_price_color: string;
shop_original_price_size: number;
shop_groupbuy_people_color: string;
shop_groupbuy_people_border_color: string;
shop_groupbuy_people_size: number;
shop_groupbuy_hot_color: string;
shop_groupbuy_hot_size: number;
shop_sold_number_typeface: string;
shop_sold_number_size: number;
shop_sold_number_color: string;
@ -181,7 +186,7 @@ const defaultProductList: DefaultProductList = {
tabs_active_index: 0,
static_img: [{ id: 2, url: new_url + 'price.png', original: '角标', title: '角标', ext: '.png', type: 'img' }],
// 显示内容
is_show: ['title', 'plugins_view_icon', 'price', 'original_price'],
is_show: ['title', 'groupbuy_people_num', 'groupbuy_hot', 'price', 'original_price'],
// 显示简介行数
simple_desc_row: '1',
// 是否显示购买按钮
@ -190,7 +195,7 @@ const defaultProductList: DefaultProductList = {
is_price_solo: '1',
// 购买按钮类型
shop_type: 'text',
shop_button_text: '购买',
shop_button_text: '开团中',
shop_button_icon_class: 'cart',
// 点击购买按钮的操作处理
shop_button_effect: '0',
@ -423,6 +428,11 @@ const defaultProductList: DefaultProductList = {
shop_price_unit_size: 9,
shop_original_price_color: '#999',
shop_original_price_size: 12,
shop_groupbuy_people_color: '#EA3323',
shop_groupbuy_people_border_color: '#EA3323',
shop_groupbuy_people_size: 9,
shop_groupbuy_hot_color: '#999999',
shop_groupbuy_hot_size: 10,
shop_sold_number_typeface: '400',
shop_sold_number_size: 10,
shop_sold_number_color: '#999999',