修改自定义数据的存放

v1.1.0
于肖磊 2024-11-14 13:50:51 +08:00
parent 836bdeade3
commit 8ab1bd254d
6 changed files with 47 additions and 33 deletions

View File

@ -87,7 +87,7 @@ const style_img_container = computed(() => common_img_computer(new_style.value.c
//
let data_source_content_list = computed(() => {
if (['goods', 'article', 'brand'].includes(form.value.data_source)) {
if (form.value.data_source_content_value.data_type == '0') {
if (form.value.data_source_content.data_type == '0') {
return form.value.data_source_content.data_list;
} else {
return form.value.data_source_content.data_auto_list;

View File

@ -15,7 +15,7 @@
<card-container>
<div class="mb-12">{{ form.data_source == 'goods' ? '商品' : form.data_source == 'article' ? '文章' : '品牌' }}设置</div>
<!-- 数据筛选组件, 根据数据源类型显示不同的筛选组件 -->
<data-filter :type="form.data_source" :value="form.data_source_content_value" :list="form.data_source_content.data_list" :base-list="base_list" @add="add" @data_list_replace="data_list_replace" @data_list_remove="data_list_remove" @data_list_sort="data_list_sort"></data-filter>
<data-filter :type="form.data_source" :value="form.data_source_content" :list="form.data_source_content.data_list" :base-list="base_list" @add="add" @data_list_replace="data_list_replace" @data_list_remove="data_list_remove" @data_list_sort="data_list_sort"></data-filter>
</card-container>
</template>
<div class="divider-line"></div>
@ -112,11 +112,9 @@ const getCustominit = () => {
onBeforeMount(() => {
//
if (!Object.keys(form.data_source_content).includes('data_auto_list') && !Object.keys(form.data_source_content).includes('data_list')) {
form.data_source_content = cloneDeep(source_list[form.data_source as keyof typeof source_list]);
form.data_source_content.data_list = [ form.data_source_content ];
}
if (!isEmpty(form.data_source) && typeof form.data_source_content_value == 'string' && form.data_source in source_list) {
form.data_source_content_value = source_list[form.data_source as keyof typeof source_list];
}
if (!data_source_store.is_data_source_api) {
data_source_store.set_is_data_source_api(true);
getCustominit();
@ -194,6 +192,10 @@ const source_list = {
goods: {
// id
data_ids: [],
//
data_list: [],
//
data_auto_list: [],
//
data_type: '0',
//
@ -210,6 +212,10 @@ const source_list = {
article: {
// id
data_ids: [],
//
data_list: [],
//
data_auto_list: [],
data_type: '0',
number: 4,
order_by_type: '0',
@ -222,6 +228,10 @@ const source_list = {
brand: {
// id
data_ids: [],
//
data_list: [],
//
data_auto_list: [],
//
data_type: '0',
//
@ -240,16 +250,24 @@ const changeDataSource = (key: string) => {
const type_data = options.value.filter((item) => item.type == key);
processing_data(key);
if (type_data.length > 0 && !isEmpty(type_data[0].appoint_data)) {
form.data_source_content.data_list = [type_data[0].appoint_data];
form.data_source_content = {
// id
data_ids: [],
data_list: [ type_data[0].appoint_data ],
//
data_auto_list: [],
}
} else {
form.data_source_content = {
// id
data_ids: [],
//
data_list: [],
//
data_auto_list: [],
};
if (!isEmpty(key) && key in source_list) {
form.data_source_content_value = source_list[key as keyof typeof source_list];
form.data_source_content = cloneDeep(source_list[key as keyof typeof source_list]);
}
}
};
@ -353,7 +371,7 @@ const url_value_dialog_call_back = (item: any[]) => {
//
let data_source_content_list = computed(() => {
if (['goods', 'article', 'brand'].includes(form.data_source)) {
if (form.data_source_content_value.data_type == '0') {
if (form.data_source_content.data_type == '0') {
return form.data_source_content.data_list;
} else {
return form.data_source_content.data_auto_list;
@ -364,7 +382,7 @@ let data_source_content_list = computed(() => {
})
//
const get_products = () => {
const { category_ids, brand_ids, number, order_by_type, order_by_rule } = form.data_source_content_value;
const { category_ids, brand_ids, number, order_by_type, order_by_rule } = form.data_source_content;
const params = {
goods_keywords: '',
goods_category_ids: category_ids,
@ -391,7 +409,7 @@ const get_products = () => {
};
//
const get_article = async () => {
const { category_ids, number, order_by_type, order_by_rule, is_cover } = form.data_source_content_value;
const { category_ids, number, order_by_type, order_by_rule, is_cover } = form.data_source_content;
const new_data = {
article_keywords: '',
article_category_ids: category_ids.join(','),
@ -418,7 +436,12 @@ const get_brand = () => {
console.log('品牌分类数据');
form.data_source_content.data_auto_list = [];
}
watch(() => form.data_source_content_value, (new_val) => {
const data_source_content_value = computed(() => {
const { category_ids, brand_ids, number, order_by_type, order_by_rule, data_type, is_cover } = form.data_source_content;
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, is_cover: is_cover };
})
watch(() => data_source_content_value.value, (new_val) => {
//
if (new_val.data_type != '0') {
if (form.data_source == 'goods') {

View File

@ -84,7 +84,7 @@ const percentage_count = (val: number) => {
//
let data_source_content_list = computed(() => {
if (['goods', 'article', 'brand'].includes(form.value.data_source)) {
if (form.value.data_source_content_value.data_type == '0') {
if (form.value.data_source_content.data_type == '0') {
return form.value.data_source_content.data_list;
} else {
return form.value.data_source_content.data_auto_list;

View File

@ -200,13 +200,10 @@ const data_content = {
width: 0,
// key
img_key: '',
// id
data_source_content_value: {
// id
data_ids: [],
},
//
data_source_content: {
// id
data_ids: [],
//
data_list: [],
//

View File

@ -1,18 +1,13 @@
import defaultCommon from "./index";
interface content {
data_ids: Array<string>;
data_list: Array<object>;
data_auto_list: Array<object>;
}
interface content_value {
data_ids: Array<string>;
}
interface defaultSearch {
}interface defaultSearch {
content: {
height: number;
img_key: string;
data_source: string;
data_source_content_value: content_value;
data_source_content: content;
custom_list: string[];
};
@ -26,13 +21,10 @@ const defaultSearch: defaultSearch = {
height: 390,
// 图片key
img_key: '',
// 存放数据内容的id
data_source_content_value: {
// 存放手动输入的id
data_ids: [],
},
// 数据源内容
data_source_content: {
// 存放手动输入的id
data_ids: [],
// 手动输入
data_list: [],
// 自动

View File

@ -305,12 +305,13 @@ const save_formmat_form_data = (data: diy_data_item, close: boolean = false, is_
data_id: item3.data.id,
};
});
const data_list = cloneDeep(item1.data_content.data_source_content.data_list);
// ,id
item1.data_content.data_source_content_value.data_ids = item1.data_content.data_source_content.data_list.map((item4: any) => item4.data.id).join(',') || '';
item1.data_content.data_source_content.data_ids = data_list.map((item4: any) => item4.data.id).join(',') || '';
//
item1.data_content.data_source_content.data_auto_list = [];
// ,data
item1.data_content.data_source_content.data_list = item1.data_content.data_source_content.data_list.map((item5: any) => {
item1.data_content.data_source_content.data_list = data_list.map((item5: any) => {
return {
...item5,
data: [],
@ -319,12 +320,13 @@ const save_formmat_form_data = (data: diy_data_item, close: boolean = false, is_
});
});
} else if (new_array_5.includes(item.key)) {
const data_list = cloneDeep(item.data_content.data_source_content.data_list);
// ,id
item.com_data.content.data_source_content_value.data_ids = item.com_data.content.data_source_content.data_list.map((item: any) => item.data.id).join(',') || '';
item.com_data.content.data_source_content.data_ids = data_list.map((item: any) => item.data.id).join(',') || '';
//
item.com_data.content.data_source_content.data_auto_list = [];
// ,data
item.com_data.content.data_source_content.data_list = item.com_data.content.data_source_content.data_list.map((item1: any) => {
item.com_data.content.data_source_content.data_list = data_list.map((item1: any) => {
return {
...item1,
data: [],