修改商品加购逻辑

v1.2.0
于肖磊 2025-01-20 15:54:23 +08:00
parent 4bc19453d6
commit 9d197f8466
14 changed files with 78 additions and 54 deletions

View File

@ -11,7 +11,7 @@
</div>
<div v-show="form.data_type === '1'" class="w h">
<el-form-item label="关键字">
<el-input v-model="keyword" placeholder="请输入商品关键字" clearable @blur="keyword_blur"></el-input>
<el-input v-model="keywords" placeholder="请输入商品关键字" clearable @blur="keyword_blur"></el-input>
</el-form-item>
<el-form-item label="商品分类">
<el-select v-model="form.category_ids" multiple collapse-tags filterable placeholder="请选择商品分类">
@ -50,7 +50,7 @@
</div>
<div v-show="form.data_type === '1'" class="w h">
<el-form-item label="关键字">
<el-input v-model="keyword" placeholder="请输入文章关键字" clearable @blur="keyword_blur"></el-input>
<el-input v-model="keywords" placeholder="请输入文章关键字" clearable @blur="keyword_blur"></el-input>
</el-form-item>
<el-form-item label="文章分类">
<el-select v-model="form.category_ids" multiple collapse-tags filterable placeholder="请选择文章分类">
@ -87,7 +87,7 @@
</div>
<div v-show="form.data_type === '1'" class="w h">
<el-form-item label="关键字">
<el-input v-model="keyword" placeholder="请输入品牌关键字" clearable @blur="keyword_blur"></el-input>
<el-input v-model="keywords" placeholder="请输入品牌关键字" clearable @blur="keyword_blur"></el-input>
</el-form-item>
<el-form-item label="品牌分类">
<el-select v-model="form.category_ids" multiple collapse-tags filterable placeholder="请选择品牌分类">
@ -133,12 +133,12 @@
default: 'goods',
}
});
const keyword = ref(props.value.keyword);
const keywords = ref(props.value.keywords);
const form = ref(props.value);
const drag_list = ref(props.list);
//
watchEffect(() => {
keyword.value = props.value.keyword;
keywords.value = props.value.keywords;
form.value = props.value;
//
form.value.order_by_type = Number(props.value?.order_by_type || 0);
@ -146,7 +146,7 @@
drag_list.value = props.list;
});
const keyword_blur = () => {
form.value.keyword = keyword.value;
form.value.keywords = keywords.value;
}
const emits = defineEmits(['data_list_sort', 'data_list_remove', 'data_list_replace', 'add']);
//

View File

@ -2,38 +2,38 @@
<div class="flex-row gap-10 jc-sb align-c">
<div class="tabs flex-row oh" :style="`column-gap: ${new_style.tabs_spacing}px;height: ${tabs_height}`">
<template v-for="(item, index) in form.tabs_list" :key="index">
<div class="item nowrap flex-col jc-c" :class="tabs_theme + (index == activeIndex ? ' active' : '') + ((tabs_theme_index == '0' && tabs_theme_1_style) || tabs_theme_index == '1' || tabs_theme_index == '2' ? ' pb-0' : '')" :style="`flex:0 0 auto;row-gap: ${new_style.tabs_sign_spacing}px;`">
<div class="item nowrap ma-auto" :class="tabs_theme + (index == activeIndex ? ' active' : '') + ((tabs_theme_index == '0' && tabs_theme_1_style) || tabs_theme_index == '1' || tabs_theme_index == '2' ? ' pb-0' : '')" style="flex:0 0 auto;">
<template v-if="!isEmpty(item.img)">
<image-empty v-model="item.img[0]" class="img" :style="top_img_style('data')" fit="contain" error-img-style="width:3.9rem;height:3.9rem;"></image-empty>
<image-empty v-model="item.img[0]" class="img re z-deep" :style="top_img_style('data')" fit="contain" error-img-style="width:3.9rem;height:3.9rem;"></image-empty>
</template>
<template v-else>
<image-empty class="img" :style="top_img_style('noData')" fit="contain" error-img-style="width:3.9rem;height:3.9rem;"></image-empty>
<image-empty class="img re z-deep" :style="top_img_style('noData')" fit="contain" error-img-style="width:3.9rem;height:3.9rem;"></image-empty>
</template>
<template v-if="item.tabs_type == '1'">
<template v-if="!isEmpty(item.tabs_icon)">
<div class="title" :style="index == activeIndex ? ['2', '4'].includes(tabs_theme_index) ? tabs_check : '' : padding_bottom">
<div :class="['title re ', tabs_theme_index == '4' ? 'z-i' : 'z-deep']" :style="title_icon_style(index, 'icon') + (index == activeIndex ? '' : padding_bottom)">
<el-icon :class="`iconfont ${ 'icon-' + item.tabs_icon}`" :style="icon_style(index)" />
</div>
</template>
<template v-else>
<div class="title" :style="index == activeIndex ? new_style.is_tabs_img_background == '1' && ['2', '4'].includes(tabs_theme_index) ? tabs_check : '' : padding_bottom">
<div :class="['title re ', tabs_theme_index == '4' ? 'z-i' : 'z-deep']" :style="title_icon_style(index, 'img') + (index == activeIndex ? '' : padding_bottom)">
<image-empty v-model="item.tabs_img[0]" fit="contain" :style="img_style()" error-img-style="width: 2rem;height: 2rem;" />
</div>
</template>
</template>
<template v-else>
<div class="title" :style="title_style(index) + (index == activeIndex ? '' : padding_bottom)">{{ item.title }}</div>
<div :class="['title re ', tabs_theme_index == '4' ? 'z-i' : 'z-deep']" :style="title_style(index) + (index == activeIndex ? '' : padding_bottom)">{{ item.title }}</div>
</template>
<div class="desc" :style="tabs_theme_index == '1' && index == activeIndex ? tabs_check : ''">{{ item.desc }}</div>
<div class="desc w re z-i" :style="tabs_sign_spacing + (tabs_theme_index == '1' && index == activeIndex ? tabs_check : '')">{{ item.desc }}</div>
<template v-if="tabs_theme_index == '3' && index == activeIndex">
<template v-if="!isEmpty(form.tabs_adorn_icon)">
<icon :name="form.tabs_adorn_icon" class="icon" :style="tabs_theme_index == '3' ? icon_tabs_check() : ''" :size="new_style.tabs_adorn_icon_size + ''"></icon>
<icon :name="form.tabs_adorn_icon" class="icon re z-i" :style="icon_tabs_check() + tabs_sign_spacing" :size="new_style.tabs_adorn_icon_size + ''"></icon>
</template>
<template v-else>
<image-empty v-model="form.tabs_adorn_img[0]" fit="contain" :style="tabs_theme_index == '3' ? tabs_adorn_img_style : ''" error-img-style="width: 2rem;height: 2rem;" />
<image-empty v-model="form.tabs_adorn_img[0]" fit="contain" class="re z-i" :style="tabs_adorn_img_style + tabs_sign_spacing" error-img-style="width: 2rem;height: 2rem;" />
</template>
</template>
<div class="bottom_line" :class="tabs_bottom_line_theme" :style="tabs_check"></div>
<div class="bottom_line re z-i" :class="tabs_bottom_line_theme" :style="tabs_check + tabs_sign_spacing"></div>
</div>
</template>
</div>
@ -66,6 +66,7 @@ const form = computed(() => props.value.content);
const new_style = computed(() => props.value.style);
//
const tabs_theme_index = computed(() => form.value.tabs_theme);
const tabs_sign_spacing = computed(() => `margin-top: ${ new_style.value.tabs_sign_spacing }px;`);
//
const tabs_theme = computed(() => {
let tabs_theme = '';
@ -161,15 +162,32 @@ const title_style = (index: number) => {
}
style = checked_style;
}
if (tabs_theme_index.value == '4') {
style += tabs_sign_spacing.value;
}
return style;
};
const title_icon_style = (index: number, type: string) => {
let style = '';
//
if (index == props.activeIndex) {
if ((type =='icon' && ['2', '4'].includes(tabs_theme_index.value)) || (type =='img' && new_style.value.is_tabs_img_background == '1' && ['2', '4'].includes(tabs_theme_index.value))) {
style += tabs_check.value;
}
}
if (tabs_theme_index.value == '4') {
style += tabs_sign_spacing.value;
}
return style;
};
const icon_style = (index: number) => {
//
let style = `font-size: ${new_style.value.tabs_icon_size}px;line-height: ${new_style.value.tabs_icon_size}px;color:${new_style.value.tabs_icon_color};`;
let style = `font-size: ${new_style.value.tabs_icon_size}px;line-height: ${new_style.value.tabs_icon_size}px;color:${new_style.value.tabs_icon_color};display:flex;`;
//
if (index == props.activeIndex) {
style = `font-size: ${new_style.value.tabs_icon_size_checked}px;line-height: ${new_style.value.tabs_icon_size_checked}px;color:${new_style.value.tabs_icon_color_checked};`;
style = `font-size: ${new_style.value.tabs_icon_size_checked}px;line-height: ${new_style.value.tabs_icon_size_checked}px;color:${new_style.value.tabs_icon_color_checked};display:flex;`;
}
return style;
};
@ -253,6 +271,7 @@ const icon_tabs_check = () => {
// border-radius: 100%;
border: 0.1rem solid transparent;
display: none;
margin: 0 auto;
}
&.tabs-style-1 {
&.active {
@ -279,7 +298,7 @@ const icon_tabs_check = () => {
.desc {
border-radius: 2rem;
padding: 0.2rem 0.6rem;
display: inline-block;
display: block;
}
}
&.tabs-style-3 {
@ -323,4 +342,7 @@ const icon_tabs_check = () => {
.pb-0 {
padding-bottom: 0 !important;
}
.ma-auto {
margin: auto;
}
</style>

View File

@ -156,9 +156,9 @@ const new_content = computed(() => props.value?.content || {});
const new_style = computed(() => props.value?.style || {});
//
const get_auto_data_list = async () => {
const { category_ids, number, order_by_type, order_by_rule, is_cover, keyword } = new_content.value;
const { category_ids, number, order_by_type, order_by_rule, is_cover, keywords } = new_content.value;
const new_data = {
article_keywords: keyword,
article_keywords: keywords,
article_category_ids: category_ids.join(','),
article_order_by_type: order_by_type,
article_order_by_rule: order_by_rule,
@ -206,8 +206,8 @@ onMounted(() => {
});
// new_content
const data_list_computer = computed(() => {
const { data_type, category_ids, number, order_by_type, order_by_rule, is_cover, data_list, keyword } = new_content.value;
return { data_type, category_ids, number, order_by_type, order_by_rule, is_cover, data_list, keyword };
const { data_type, category_ids, number, order_by_type, order_by_rule, is_cover, data_list, keywords } = new_content.value;
return { data_type, category_ids, number, order_by_type, order_by_rule, is_cover, data_list, keywords };
});
// new_content
watch(

View File

@ -65,7 +65,7 @@ watch(
//
new_data.content.theme = new_data.content.article_theme;
new_data.content.data_type = new_data.content.tabs_list[tabs_active_index.value].data_type;
new_data.content.keyword = new_data.content.tabs_list[tabs_active_index.value].keyword;
new_data.content.keywords = new_data.content.tabs_list[tabs_active_index.value].keywords;
new_data.content.category_ids = new_data.content.tabs_list[tabs_active_index.value].category_ids;
new_data.content.carousel_col = new_data.content.article_carousel_col;
new_data.content.data_list = new_data.content.tabs_list[tabs_active_index.value].data_list;

View File

@ -57,7 +57,7 @@
</div>
</el-form-item>
<el-form-item label="上下间距">
<slider v-model="form.tabs_sign_spacing" :max="50"></slider>
<slider v-model="form.tabs_sign_spacing" :min="-50" :max="50"></slider>
</el-form-item>
<el-form-item label="左右间距">
<slider v-model="form.tabs_spacing" :max="100"></slider>

View File

@ -62,7 +62,7 @@
<!-- <div v-if="is_show('4')" class="pl-5" :style="trends_config('score')">0</div> -->
</div>
</div>
<div v-if="form.is_shop_show == '1'">
<div v-if="(form.is_shop_show == '1' && form.shop_button_effect == '1' && item.is_error == 0) || (form.is_shop_show == '1' && form.shop_button_effect == '0')">
<template v-if="form.shop_type == 'text'">
<div class="plr-11 ptb-3 round cr-f" :style="trends_config('button', 'gradient') + `color: ${new_style.shop_button_text_color};`">{{ form.shop_button_text }}</div>
</template>
@ -88,7 +88,7 @@
</span>
</div>
</div>
<div v-if="form.is_shop_show == '1'">
<div v-if="(form.is_shop_show == '1' && form.shop_button_effect == '1' && item.is_error == 0) || (form.is_shop_show == '1' && form.shop_button_effect == '0')">
<template v-if="form.shop_type == 'text'">
<div class="plr-11 ptb-3 round cr-f" :style="trends_config('button', 'gradient') + `color: ${new_style.shop_button_text_color};`">{{ form.shop_button_text }}</div>
</template>
@ -145,7 +145,7 @@
</span>
</div>
</div>
<div v-if="form.is_shop_show == '1'">
<div v-if="(form.is_shop_show == '1' && form.shop_button_effect == '1' && item.is_error == 0) || (form.is_shop_show == '1' && form.shop_button_effect == '0')">
<template v-if="form.shop_type == 'text'">
<div class="plr-11 ptb-3 round cr-f" :style="trends_config('button', 'gradient') + `color: ${new_style.shop_button_text_color};`">{{ form.shop_button_text }}</div>
</template>
@ -208,6 +208,7 @@ interface data_list {
show_price_symbol: string;
show_price_unit: string;
sales_count: string;
is_error: number;
plugins_view_icon_data: plugins_icon_data[];
}
const default_list = {
@ -221,6 +222,7 @@ const default_list = {
sales_count: '1000',
images: '',
new_cover: [],
is_error: 0,
plugins_view_icon_data: [
{
name: '满减活动',
@ -265,9 +267,9 @@ onMounted(() => {
});
const get_products = () => {
const { category_ids, brand_ids, number, order_by_type, order_by_rule, keyword } = form.value;
const { category_ids, brand_ids, number, order_by_type, order_by_rule, keywords } = form.value;
const params = {
goods_keywords: keyword,
goods_keywords: keywords,
goods_category_ids: category_ids,
goods_brand_ids: brand_ids,
goods_order_by_type: order_by_type,
@ -285,8 +287,8 @@ const get_products = () => {
};
//
const watch_data = computed(() => {
const { category_ids, brand_ids, number, order_by_type, order_by_rule, data_type, data_list, keyword } = form.value;
return { category_ids: category_ids, brand_ids: brand_ids, number: number, order_by_type: order_by_type, order_by_rule: order_by_rule, data_type: data_type, data_list: data_list, keyword: keyword };
const { category_ids, brand_ids, number, order_by_type, order_by_rule, data_type, data_list, keywords } = form.value;
return { category_ids: category_ids, brand_ids: brand_ids, number: number, order_by_type: order_by_type, order_by_rule: order_by_rule, data_type: data_type, data_list: data_list, keyword: keywords };
})
// ,
watch(() => watch_data.value, (val, oldVal) => {

View File

@ -64,7 +64,7 @@ watch(
shop_img_container.value = background_computer(shop_content_data) + padding_computer(new_style.shop_content_padding);
//
new_data.content.data_type = new_data.content.tabs_list[tabs_active_index.value].data_type;
new_data.content.keyword = new_data.content.tabs_list[tabs_active_index.value].keyword;
new_data.content.keywords = new_data.content.tabs_list[tabs_active_index.value].keywords;
new_data.content.category_ids = new_data.content.tabs_list[tabs_active_index.value].category_ids;
new_data.content.brand_ids = new_data.content.tabs_list[tabs_active_index.value].brand_ids;
new_data.content.number = new_data.content.tabs_list[tabs_active_index.value].number;

View File

@ -67,7 +67,7 @@
</div>
</el-form-item>
<el-form-item label="上下间距">
<slider v-model="form.tabs_sign_spacing" :max="50"></slider>
<slider v-model="form.tabs_sign_spacing" :min="-50" :max="50"></slider>
</el-form-item>
<el-form-item label="左右间距">
<slider v-model="form.tabs_spacing" :max="100"></slider>

View File

@ -57,7 +57,7 @@
</div>
</el-form-item>
<el-form-item label="上下间距">
<slider v-model="form.tabs_sign_spacing" :max="50"></slider>
<slider v-model="form.tabs_sign_spacing" :min="-50" :max="50"></slider>
</el-form-item>
<el-form-item label="左右间距">
<slider v-model="form.tabs_spacing" :max="100"></slider>

View File

@ -16,7 +16,7 @@ interface DefaultArticleList {
theme: string;
carousel_col: string;
data_type: string;
keyword: string;
keywords: string;
category_ids: string[];
data_list: ArticleList[];
data_ids: string;
@ -90,7 +90,7 @@ const defaultArticleList: DefaultArticleList = {
theme: '0',
carousel_col: '2',
data_type: '0',
keyword: '',
keywords: '',
category_ids: defaultSetting.category_ids,
data_list: [],
data_ids: '',

View File

@ -16,7 +16,7 @@ interface articleTabsList {
title: string;
desc: string;
data_type: string;
keyword: string;
keywords: string;
category_ids: string[];
number: number;
order_by_type: number;
@ -146,12 +146,12 @@ const defaultArticleTabs: DefaultArticleTabs = {
article_theme: '0',
article_carousel_col: '2',
tabs_list: [
{ id: '1', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '热门推荐', desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '2', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试一', desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '3', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试二', desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '4', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试三', desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '5', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试四', desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '6', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试五', desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '1', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '热门推荐', desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '2', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试一', desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '3', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试二', desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '4', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试三', desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '5', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试四', desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
{ id: '6', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试五', desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, data_ids: '', number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_rule, is_cover: defaultSetting.is_cover, data_list: [], data_auto_list: [] },
],
tabs_active_index: 0,
field_show: ['0', '1', '3'],

View File

@ -11,7 +11,7 @@ export const source_list = {
// 商品类型
data_type: 0,
// 关键字
keyword: '',
keywords: '',
// 商品分类
category_ids: [],
// 品牌
@ -32,7 +32,7 @@ export const source_list = {
data_auto_list: [],
data_type: 0,
// 关键字
keyword: '',
keywords: '',
number: 4,
order_by_type: '0',
order_by_rule: '0',
@ -51,7 +51,7 @@ export const source_list = {
// 商品类型
data_type: 0,
// 关键字
keyword: '',
keywords: '',
// 商品分类
category_ids: [],
// 显示数量

View File

@ -9,7 +9,7 @@ interface DefaultProductList {
content_top: object;
theme: string;
data_type: string;
keyword: string;
keywords: string;
carousel_col: number;
category_ids: string[];
brand_ids: string[];
@ -104,7 +104,7 @@ const defaultProductList: DefaultProductList = {
// 商品类型
data_type: '0',
// 商品关键字
keyword: '',
keywords: '',
// 轮播列数
carousel_col: 3,
// 商品列表

View File

@ -13,7 +13,7 @@ interface articleTabsList {
img: uploadList[];
desc: string;
data_type: string;
keyword: string;
keywords: string;
category_ids: string[];
brand_ids: string[];
data_ids: string[];
@ -167,10 +167,10 @@ const defaultProductList: DefaultProductList = {
carousel_col: 3,
// 选项卡数据
tabs_list: [
{ id: '1', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '热门推荐', img: [], desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
{ id: '2', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试一', img: [], desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
{ id: '3', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试二', img: [], desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
{ id: '4', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试三', img: [], desc: '简介', data_type: '0', keyword: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
{ id: '1', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '热门推荐', img: [], desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
{ id: '2', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试一', img: [], desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
{ id: '3', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试二', img: [], desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
{ id: '4', tabs_type: '0', tabs_img: [], tabs_icon: '', title: '测试三', img: [], desc: '简介', data_type: '0', keywords: '', category_ids: defaultSetting.category_ids, brand_ids: defaultSetting.brand_ids, data_ids: [], number: defaultSetting.page_size, order_by_type: defaultSetting.order_by_type, order_by_rule: defaultSetting.order_by_type, data_list: [], data_auto_list: [] },
],
// 选中的内容索引
tabs_active_index: 0,