diff --git a/src/components/model-custom/index.vue b/src/components/model-custom/index.vue index cf16071b..8fb3cf48 100644 --- a/src/components/model-custom/index.vue +++ b/src/components/model-custom/index.vue @@ -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; diff --git a/src/components/model-custom/model-custom-content.vue b/src/components/model-custom/model-custom-content.vue index 12e3c060..7afe9043 100644 --- a/src/components/model-custom/model-custom-content.vue +++ b/src/components/model-custom/model-custom-content.vue @@ -15,7 +15,7 @@
{{ form.data_source == 'goods' ? '商品' : form.data_source == 'article' ? '文章' : '品牌' }}设置
- +
@@ -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') { diff --git a/src/components/model-data-magic/components/custom/index.vue b/src/components/model-data-magic/components/custom/index.vue index ff198c30..8ad9da9c 100644 --- a/src/components/model-data-magic/components/custom/index.vue +++ b/src/components/model-data-magic/components/custom/index.vue @@ -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; diff --git a/src/components/model-data-magic/model-data-magic-content.vue b/src/components/model-data-magic/model-data-magic-content.vue index d455ca88..4b2b6dac 100644 --- a/src/components/model-data-magic/model-data-magic-content.vue +++ b/src/components/model-data-magic/model-data-magic-content.vue @@ -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: [], // 自动 diff --git a/src/config/const/custom.ts b/src/config/const/custom.ts index bc4a46ab..c37adf67 100644 --- a/src/config/const/custom.ts +++ b/src/config/const/custom.ts @@ -1,18 +1,13 @@ import defaultCommon from "./index"; interface content { + data_ids: Array; data_list: Array; data_auto_list: Array; -} - -interface content_value { - data_ids: Array; -} -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: [], // 自动 diff --git a/src/views/layout/index.vue b/src/views/layout/index.vue index 34ad0503..895fa8ac 100644 --- a/src/views/layout/index.vue +++ b/src/views/layout/index.vue @@ -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: [],