修改回显问题

v1.0.0
于肖磊 2024-08-26 16:51:20 +08:00
parent 45a03d6042
commit eb8c03d23c
5 changed files with 65 additions and 66 deletions

View File

@ -9,7 +9,7 @@
</el-select>
<div v-if="!isEmpty(form.source_list)" class="flex-row mt-20 gap-20">
<div class="re flex align-c">
<image-empty v-model="form.source_list[img_key]" style="width: 10rem; height: 10rem;"></image-empty>
<image-empty v-model="form.source_list[form.img_key]" style="width: 10rem; height: 10rem;"></image-empty>
<div class="plr-15 bg-f abs replace-data size-14" @click="replace_data"></div>
</div>
<div class="flex-1 size-14 text-line-3">{{ form.source_list.title || form.source_list.name }}</div>
@ -40,7 +40,7 @@
</div>
</div>
</Dialog>
<url-value-dialog v-model:dialog-visible="url_value_dialog_visible" :type="dialog_type" @update:model-value="url_value_dialog_call_back" @close="url_value_close"></url-value-dialog>
<url-value-dialog v-model:dialog-visible="url_value_dialog_visible" :type="[ form.data_source ]" @update:model-value="url_value_dialog_call_back" @close="url_value_close"></url-value-dialog>
</div>
</template>
<script setup lang="ts">
@ -81,6 +81,8 @@ const getCustominit = () => {
const { data_source } = res.data;
options.value = data_source;
data_source_store.set_data_source(data_source);
//
processing_data(form.data_source);
});
}
@ -95,6 +97,7 @@ onBeforeMount(() => {
}
});
//
const model_data_source = ref<data_list[]>([])
const processing_data = (key: string) => {
const list = options.value.filter(item => item.type == key);
if (list.length > 0) {
@ -103,14 +106,11 @@ const processing_data = (key: string) => {
const field_list = list[0].data.filter(item => item.type == 'images');
// key
if (field_list.length > 0) {
img_key.value = field_list[0].field;
form.img_key = field_list[0].field;
}
} else {
model_data_source.value = [];
}
if (!isEmpty(key)) {
dialog_type.value = [ key ];
}
};
//#endregion
//#region
@ -152,9 +152,6 @@ const accomplish = () => {
};
//#endregion
//#region
const model_data_source = ref<data_list[]>([])
const dialog_type = ref<string[]>([]);
const img_key = ref('');
//
const url_value_dialog_visible = ref(false);
const changeDataSource = (key: string) => {
@ -181,7 +178,7 @@ const url_value_close = () => {
}
//
const replace_data = () => {
if (!isEmpty(dialog_type.value)) {
if (!isEmpty(form.data_source)) {
url_value_dialog_visible.value = true;
}
}

View File

@ -149,6 +149,57 @@ const percentage = (num: number) => {
};
//#endregion
//#region
//
const indicator_style = (item: any) => {
let styles = '';
if (!isEmpty(item.indicator_radius)) {
styles += radius_computer(item.indicator_radius)
}
const size = item?.indicator_size || 5;
if (item.indicator_style == 'num') {
styles += `color: ${item?.color || '#DDDDDD'};`;
styles += `font-size: ${size}px;`;
} else if (item.indicator_style == 'elliptic') {
styles += `background: ${item?.color || '#DDDDDD'};`;
styles += `width: ${size * 3}px; height: ${size}px;`;
} else {
styles += `background: ${item?.color || '#DDDDDD'};`;
styles += `width: ${size}px; height: ${size}px;`;
}
return styles;
};
const background_style = (item: any) => {
return gradient_computer(item) + background_computer(item);
};
const style_actived_color = (item: any, index: number) => {
return item.actived_index == index ? `background: ${ item.data_style.actived_color };` : ''
}
/*
** 组装产品的数据
** @param {Array} list 商品列表
** @param {Number} num 显示数量
** @return {Array}
*/
const commodity_list = (list: any[], num: number) => {
if (list.length > 0) {
//
const goods_list = cloneDeep(list).map((item: any) => ({
...item.data,
title: !isEmpty(item.new_title) ? item.new_title : item.data.title,
new_cover: item.new_cover,
}));
//
let nav_list = [];
//
const split_num = Math.ceil(goods_list.length / num);
for (let i = 0; i < split_num; i++) {
nav_list.push({ split_list: goods_list.slice(i * num, (i + 1) * num) });
}
return nav_list;
} else {
return [];
}
}
const old_list = ref<any>({});
const data_magic_list = ref<data_magic[]>([]);
watch(props.value.content, (val) => {
@ -195,33 +246,7 @@ watch(props.value.content, (val) => {
}
});
data_magic_list.value = data;
})
const background_style = (item: any) => {
return gradient_computer(item) + background_computer(item);
};
//
const indicator_style = (item: any) => {
let indicator_styles = '';
if (!isEmpty(item.indicator_radius)) {
indicator_styles += radius_computer(item.indicator_radius)
}
const size = item?.indicator_size || 5;
if (item.indicator_style == 'num') {
indicator_styles += `color: ${item?.color || '#DDDDDD'};`;
indicator_styles += `font-size: ${size}px;`;
} else if (item.indicator_style == 'elliptic') {
indicator_styles += `background: ${item?.color || '#DDDDDD'};`;
indicator_styles += `width: ${size * 3}px; height: ${size}px;`;
} else {
indicator_styles += `background: ${item?.color || '#DDDDDD'};`;
indicator_styles += `width: ${size}px; height: ${size}px;`;
}
return indicator_styles;
};
const style_actived_color = (item: any, index: number) => {
return item.actived_index == index ? `background: ${ item.data_style.actived_color };` : ''
}
}, {immediate: true, deep: true})
//#endregion
const carousel_change = (index: number, key: number) => {
if (data_magic_list.value[key]) {
@ -235,32 +260,7 @@ const trends_config = (style: any, key: string) => {
const text_style = (typeface: string, size: number, color: string) => {
return `font-weight:${ typeface }; font-size: ${ size }px; color: ${ color };`;
}
/*
** 组装产品的数据
** @param {Array} list 商品列表
** @param {Number} num 显示数量
** @return {Array}
*/
const commodity_list = (list: any[], num: number) => {
if (list.length > 0) {
//
const goods_list = cloneDeep(list).map((item: any) => ({
...item.data,
title: !isEmpty(item.new_title) ? item.new_title : item.data.title,
new_cover: item.new_cover,
}));
//
let nav_list = [];
//
const split_num = Math.ceil(goods_list.length / num);
for (let i = 0; i < split_num; i++) {
nav_list.push({ split_list: goods_list.slice(i * num, (i + 1) * num) });
}
return nav_list;
} else {
return [];
}
}
// 99
const spacing_processing = (index: number) => {
return form.value.style_actived !== 8 || (form.value.style_actived === 8 && [0, 1].includes(index))

View File

@ -1,6 +1,6 @@
<template>
<div class="auxiliary-line common-content-height">
<el-form :model="form" label-width="60">
<el-form :model="form" label-width="80">
<card-container class="mb-8">
<div class="mb-12">展示风格</div>
<el-form-item label="选择风格">

View File

@ -2,8 +2,8 @@
<div class="w">
<el-form :model="form" label-width="70">
<card-container class="mb-8">
<div class="mb-12">图片魔方</div>
<el-form-item label="图片间距">
<div class="mb-12">数据魔方</div>
<el-form-item label="数据间距">
<slider v-model="form.image_spacing" :max="100"></slider>
</el-form-item>
<el-form-item label="数据圆角">

View File

@ -3,6 +3,7 @@ import defaultCommon from "./index";
interface defaultSearch {
content: {
height: number;
img_key: string;
data_source: string;
source_list: string[];
custom_list: string[];
@ -14,6 +15,7 @@ interface defaultSearch {
const defaultSearch: defaultSearch = {
content: {
height: 390,
img_key: '',
source_list: [],
data_source:'',
custom_list: []