Merge remote-tracking branch 'origin/dev-yxl' into dev-sws

v1.0.0
sws 2024-08-29 15:30:56 +08:00
commit 4b7d4a95fc
15 changed files with 124 additions and 47 deletions

View File

@ -78,14 +78,10 @@ const props = defineProps({
},
});
//
interface color_form {
color: string;
color_percentage: number | undefined;
}
const init_form = reactive({
direction: '180deg',
background_img_url: [] as uploadList[],
color_list: [{ color: '', color_percentage: undefined }] as color_form[],
color_list: [{ color: '', color_percentage: undefined }] as color_list[],
background_img_style: 2,
padding: 0,
padding_top: 0,
@ -112,7 +108,7 @@ const init_form = reactive({
let form = reactive(Object.assign({}, init_form, props.value));
const emit = defineEmits(['update:value']);
const mult_color_picker_event = (arry: color_form[], type: number) => {
const mult_color_picker_event = (arry: color_list[], type: number) => {
form.color_list = arry;
form.direction = type.toString();
emit('update:value', form);

View File

@ -1,5 +1,5 @@
<template>
<card-container class="card-container-br">
<card-container>
<div class="mb-12">显示内容</div>
<el-form-item label="是否显示">
<el-checkbox-group v-model="form.is_show">
@ -10,6 +10,7 @@
<el-switch v-model="form.is_price_solo"></el-switch>
</el-form-item>
</card-container>
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">购物车设置</div>
<el-form-item label="是否显示">
@ -81,9 +82,6 @@ const change_shop_type = () => {
margin-bottom: 0;
}
}
.card-container-br {
border-bottom: 0.8rem solid #f0f2f5;
}
.shopping_button {
height: 2.7rem;
line-height: 2.7rem;

View File

@ -1,7 +1,7 @@
<template>
<div class="auxiliary-line common-content-height">
<div class="w h">
<el-form :model="form" label-width="80">
<card-container class="mb-8">
<card-container>
<div class="mb-12">展示风格</div>
<el-form-item label="选择风格">
<div class="flex align-c flex-wrap gap-10">
@ -11,7 +11,8 @@
</div>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">展示设置</div>
<el-form-item label-width="0" class="show-config">
<!-- 风格9 -->
@ -31,6 +32,7 @@
</template>
</el-form-item>
</card-container>
<div class="bg-f5 divider-line" />
<el-tabs v-model="tabs_name" class="content-tabs">
<el-tab-pane label="内容设置" name="content">
<tabs-content :value="form.data_magic_list[selected_active].data_content" :is-show-title="is_show_title"></tabs-content>

View File

@ -1,7 +1,7 @@
<template>
<div class="w">
<el-form :model="form" label-width="70">
<card-container class="mb-8">
<card-container>
<div class="mb-12">数据魔方</div>
<el-form-item label="数据间距">
<slider v-model="form.image_spacing" :max="100"></slider>
@ -14,6 +14,7 @@
</el-form-item>
</card-container>
</el-form>
<div class="bg-f5 divider-line" />
<common-styles :value="form.common_style" @update:value="common_style_update" />
</div>
</template>

View File

@ -1,7 +1,7 @@
<template>
<div class="auxiliary-line common-content-height">
<div class="w h">
<el-form :model="form" label-width="60">
<card-container class="mb-8">
<card-container>
<div class="mb-12">展示风格</div>
<el-form-item label="选择风格">
<div class="flex align-c flex-wrap gap-10">
@ -11,7 +11,8 @@
</div>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">展示设置</div>
<el-form-item label-width="0" class="show-config">
<!-- 风格3 -->
@ -48,7 +49,8 @@
</template>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">内容设置</div>
<template v-if="!isEmpty(form.img_magic_list[selected_active])">
<el-form-item label="上传图片">

View File

@ -1,7 +1,7 @@
<template>
<div class="w">
<el-form :model="form" label-width="70">
<card-container class="mb-8">
<card-container>
<div class="mb-12">图片魔方</div>
<el-form-item label="图片间距">
<slider v-model="form.image_spacing" :max="100"></slider>
@ -11,6 +11,7 @@
</el-form-item>
</card-container>
</el-form>
<div class="bg-f5 divider-line" />
<common-styles :value="form.common_style" @update:value="common_style_update" />
</div>
</template>

View File

@ -1,7 +1,7 @@
<template>
<div :style="style_container">
<template v-if="form.notice_style == 'inherit'">
<div class="flex-row align-c news-box gap-y-8">
<div class="flex-row align-c news-box gap-y-8" :style="container_background_style">
<template v-if="form.title_type == 'img-icon'">
<div v-if="!isEmpty(form.img_src)">
<image-empty v-model="form.img_src[0]" :style="img_style"></image-empty>
@ -20,7 +20,7 @@
</div>
</template>
<template v-else>
<div class="news-card flex-col gap-10">
<div class="news-card flex-col gap-10" :style="container_background_style">
<div class="flex-row w jc-sb">
<template v-if="form.title_type == 'img-icon'">
<template v-if="!isEmpty(form.icon_class)">
@ -41,7 +41,7 @@
</div>
</template>
<script setup lang="ts">
import { common_styles_computer, get_math, gradient_handle } from '@/utils';
import { background_computer, common_styles_computer, get_math, gradient_computer, gradient_handle, radius_computer } from '@/utils';
import { isEmpty, cloneDeep } from 'lodash';
const props = defineProps({
@ -62,6 +62,19 @@ const { form, new_style } = toRefs(state);
//
const style_container = computed(() => common_styles_computer(new_style.value.common_style));
//
const container_height = computed(() => new_style.value.container_height + 'px');
//
const container_background_style = computed(() => {
const { container_color_list, container_direction, container_background_img_style, container_background_img_url } = new_style.value;
const styles = {
color_list: container_color_list,
direction: container_direction,
background_img_url: container_background_img_url,
background_img_style: container_background_img_style,
};
return gradient_computer(styles) + radius_computer(new_style.value.container_radius) + background_computer(styles) + `overflow:hidden;`;
});
//
const img_style = ref('');
//
@ -128,7 +141,8 @@ watchEffect(() => {
</script>
<style lang="scss" scoped>
.news-box {
height: 4.4rem;
min-height: 4.4rem;
overflow: hidden;
padding: 0 1rem;
background: #fff;
}
@ -160,7 +174,7 @@ watchEffect(() => {
}
:deep(.el-carousel) {
.el-carousel__container {
height: 4.4rem;
height: v-bind(container_height);
.el-carousel__item {
line-height: 4.4rem;
overflow: hidden;

View File

@ -1,7 +1,7 @@
<template>
<div class="auxiliary-line common-content-height">
<div class="w h">
<el-form :model="form" label-width="70">
<card-container class="mb-8">
<card-container>
<div class="mb-12">展示设置</div>
<el-form-item label="选择风格">
<el-radio-group v-model="form.notice_style" class="ml-4">
@ -10,7 +10,8 @@
</el-radio-group>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">公告风格</div>
<el-form-item label="标题类型">
<el-radio-group v-model="form.title_type" class="ml-4">
@ -36,7 +37,8 @@
</el-form-item>
</template>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">按钮设置</div>
<el-form-item label="右侧按钮">
<el-radio-group v-model="form.is_right_button" class="ml-4">
@ -48,7 +50,8 @@
<url-value v-model="form.more_link"></url-value>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">内容设置</div>
<drag :data="form.notice_list" type="card" :space-col="25" @remove="remove" @on-sort="on_sort">
<template #default="scoped">

View File

@ -1,7 +1,7 @@
<template>
<div class="common-style-height">
<div class="w h">
<el-form :model="form" label-width="80">
<card-container class="mb-8">
<card-container>
<div class="mb-12">标题样式</div>
<template v-if="!is_img">
<el-form-item label="标题文字">
@ -29,6 +29,35 @@
</el-form-item>
</template>
</template>
<template v-if="substance.notice_style === 'inherit'">
<el-form-item label="容器高度">
<slider v-model="form.container_height" :max="1000"></slider>
</el-form-item>
</template>
<el-form-item label="容器背景">
<div class="flex-col gap-10 w">
<div class="size-12">背景色</div>
<mult-color-picker :value="form.container_color_list" :type="form.container_direction" @update:value="mult_color_picker_event"></mult-color-picker>
<div class="flex-row jc-sb align-c">
<div class="size-12">背景图</div>
<el-radio-group v-model="form.container_background_img_style" is-button>
<el-tooltip content="单张" placement="top" effect="light">
<el-radio-button value="0"><icon name="single-sheet"></icon></el-radio-button>
</el-tooltip>
<el-tooltip content="平铺" placement="top" effect="light">
<el-radio-button value="1"><icon name="tile"></icon></el-radio-button>
</el-tooltip>
<el-tooltip content="铺满" placement="top" effect="light">
<el-radio-button value="2"><icon name="spread-over"></icon></el-radio-button>
</el-tooltip>
</el-radio-group>
</div>
<upload v-model="form.container_background_img_url" :limit="1"></upload>
</div>
</el-form-item>
<el-form-item label="容器圆角">
<radius :value="form.container_radius"></radius>
</el-form-item>
<el-form-item label="按钮颜色">
<color-picker v-model="form.button_color" default-color="#999"></color-picker>
</el-form-item>
@ -37,6 +66,7 @@
</el-form-item>
</card-container>
</el-form>
<div class="bg-f5 divider-line" />
<common-styles :value="form.common_style" @update:value="common_styles_update" />
</div>
</template>
@ -65,6 +95,11 @@ const is_img = computed(() => substance.value.title_type == 'img-icon');
const common_styles_update = (val: Object) => {
form.value.common_style = val;
};
const mult_color_picker_event = (arry: color_list[], type: number) => {
form.value.container_color_list = arry;
form.value.container_direction = type.toString();
};
</script>
<style lang="scss" scoped>
.card.mb-8 {

View File

@ -1,5 +1,5 @@
<template>
<div class="auxiliary-line common-content-height bg-f">
<div class="w h">
<el-form :model="form" label-width="70">
<card-container>
<div class="mb-12">展示设置</div>

View File

@ -1,13 +1,14 @@
<template>
<div class="common-style-height">
<div class="w h">
<el-form :model="form" label-width="70">
<card-container class="mb-8">
<card-container>
<div class="mb-12">左侧图标</div>
<el-form-item label="图标">
<color-picker v-model="form.icon_color" default-color="#CCCCCC"></color-picker>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">搜索按钮</div>
<el-form-item label="搜索按钮">
<color-picker v-model="form.button_inner_color" default-color="#fff"></color-picker>
@ -37,7 +38,8 @@
<radius :value="form.search_button_radius" @update:value="button_radius_change"></radius>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">框体样式</div>
<el-form-item label="提示文字">
<color-picker v-model="form.tips_color" default-color="#CCCCCC"></color-picker>
@ -53,6 +55,7 @@
</el-form-item>
</card-container>
</el-form>
<div class="bg-f5 divider-line" />
<common-styles :value="form.common_style" @update:value="common_styles_update" />
</div>
</template>

View File

@ -1,7 +1,7 @@
<template>
<div class="auxiliary-line common-content-height">
<div class="w h">
<el-form :model="form" label-width="70">
<card-container class="mb-8">
<card-container>
<div class="mb-12">标题设置</div>
<el-form-item label="标题名字">
<el-input v-model="form.title" placeholder="请输入标题"></el-input>
@ -10,7 +10,8 @@
<url-value v-model="form.title_link"></url-value>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">关键字设置</div>
<el-form-item label="关键字">
<el-radio-group v-model="form.keyword_show" class="ml-4">
@ -37,7 +38,8 @@
<el-button class="mt-20 mb-20 w" @click="add">+</el-button>
</template>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">更多设置</div>
<el-form-item label="右侧按钮">
<el-radio-group v-model="form.right_show" class="ml-4">

View File

@ -1,7 +1,7 @@
<template>
<div class="common-style-height">
<div class="w h">
<el-form :model="form" label-width="80">
<card-container class="mb-8">
<card-container>
<div class="mb-12">标题设置</div>
<el-form-item label="标题颜色">
<color-picker v-model="form.title_color" default-color="#000000"></color-picker>
@ -17,7 +17,8 @@
</el-form-item>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">关键字设置</div>
<el-form-item label="文字颜色">
<color-picker v-model="form.keyword_color" default-color="#000000"></color-picker>
@ -26,7 +27,8 @@
<slider v-model="form.keyword_size" :max="100"></slider>
</el-form-item>
</card-container>
<card-container class="mb-8">
<div class="bg-f5 divider-line" />
<card-container>
<div class="mb-12">更多设置</div>
<el-form-item label="按钮颜色">
<color-picker v-model="form.right_color" default-color="#999"></color-picker>
@ -36,6 +38,7 @@
</el-form-item>
</card-container>
</el-form>
<div class="bg-f5 divider-line" />
<common-styles :value="form.common_style" @update:value="common_styles_update" />
</div>
</template>

View File

@ -1,7 +1,7 @@
<template>
<div class="styles">
<div class="w h">
<el-form :model="form" label-width="70" class="m-h">
<card-container class="mb-8">
<card-container>
<div class="mb-12">头部样式</div>
<el-form-item label="顶部背景">
<div class="flex-col gap-10">
@ -52,6 +52,7 @@
</el-form-item>
</card-container>
</el-form>
<div class="bg-f5 divider-line" />
<common-styles :value="form.common_style" :is-margin="false" :is-shadow="false" :is-radius="false" @update:value="common_styles_update" />
</div>
</template>
@ -71,7 +72,7 @@ let form = reactive(props.value);
const common_styles_update = (val: Object) => {
form.common_style = val;
};
const mult_color_picker_event = (arry: string[], type: number) => {
const mult_color_picker_event = (arry: color_list[], type: number) => {
form.background_color_list = arry;
form.background_direction = type.toString();
};

View File

@ -33,6 +33,11 @@ interface defaultSearch {
topic_height: number;
icon_size: number;
icon_color: string;
container_color_list: color_list[],
container_direction: string,
container_background_img_style: string,
container_background_img_url: uploadList[],
container_radius: radiusStyle,
common_style: object;
};
}
@ -78,6 +83,17 @@ const defaultSearch: defaultSearch = {
icon_size: 12,
icon_color: '#999',
button_color: '#999',
container_color_list: [{ color: '#fff', color_percentage: undefined }],
container_direction: '180deg',
container_background_img_style: '2',
container_background_img_url: [],
container_radius: {
radius: 0,
radius_top_left: 0,
radius_top_right: 0,
radius_bottom_left: 0,
radius_bottom_right: 0,
},
common_style: defaultCommon,
},
};