页面设置开发

v1.0.0
于肖磊 2024-08-30 13:56:51 +08:00
parent 5041d26011
commit db5f4f92b7
5 changed files with 21 additions and 27 deletions

View File

@ -1,23 +1,23 @@
<template> <template>
<div class="model-top"> <div class="model-top">
<div :class="['roll', { 'page-settings-border': showPage }]" :style="roll_style" @click="page_settings"> <div :class="['roll', { 'page-settings-border': showPage }]" :style="roll_style" @click="page_settings">
<div class="pb-12 pl-6 pr-13 w"> <div class="pt-15 pl-18 pr-22 w pb-6" :style="[!isEmpty(roll_style) ? '' : 'background-color: #fff']">
<img class="img" :style="`Filter: brightness(${ new_style.function_buttons_type == 'black' ? 0 : 100 })`" src="@/assets/images/layout/main/main-top.png" /> <img class="img" :style="`Filter: brightness(${ new_style.function_buttons_type == 'black' ? 0 : 100 })`" src="@/assets/images/layout/main/main-top.png" />
</div> </div>
<div class="model-head tc re"> <div class="model-head tc re mlr-12 mt-6">
<div v-if="['1', '2', '3'].includes(form.theme)" class="flex align-c jc-c h gap-16" :style="[{ 'justify-content': form?.indicator_location || 'center', 'padding-right': form?.indicator_location == 'flex-end' ? '90px' : '0'}, text_style]"> <div v-if="['1', '2', '3'].includes(form.theme)" class="flex align-c jc-c h gap-16" :style="[{ 'justify-content': form?.indicator_location || 'center', 'padding-right': form?.indicator_location == 'flex-end' ? '90px' : '0'}, text_style]">
<template v-if="['2', '3'].includes(form.theme)"> <template v-if="['2', '3'].includes(form.theme)">
<div class="logo-outer-style"><image-empty v-model="form.logo[0]" class="logo-style" error-img-style="width:2rem;height:2rem;"></image-empty></div> <div class="logo-outer-style"><image-empty v-model="form.logo[0]" class="logo-style" error-img-style="width:2rem;height:2rem;"></image-empty></div>
</template> </template>
<div v-if="['1', '2'].includes(form.theme)">{{ form?.title || '' }}</div> <div v-if="['1', '2'].includes(form.theme)">{{ form.title }}</div>
<template v-if="['3', '5'].includes(form.theme)"> <template v-if="['3', '5'].includes(form.theme)">
<div class="flex-1" style="padding-right:90px"> <div class="flex-1" style="padding-right:90px">
<model-search :value="pageData.com_data" :is-page-settings="true"></model-search> <model-search :value="pageData.com_data" :is-page-settings="true"></model-search>
</div> </div>
</template> </template>
</div> </div>
<div class="flex align-c h gap-10"> <div v-else-if="['4', '5'].includes(form.theme)" class="flex align-c h gap-10">
<div class="flex-row gap-2"><icon name="position" size="12" color="0"></icon><span class="size-14 cr-3 text-line-1">{{ form.positioning_name || '默认定位名称' }}</span><icon v-if="form.is_arrows_show" name="arrow-right" size="12" color="0"></icon></div> <div class="flex-row gap-2"><icon name="position" size="12" color="0"></icon><span class="size-14 cr-3 text-line-1">{{ form.positioning_name }}</span><icon v-if="form.is_arrows_show" name="arrow-right" size="12" color="0"></icon></div>
<template v-if="['5'].includes(form.theme)"> <template v-if="['5'].includes(form.theme)">
<div class="flex-1" style="padding-right:90px"> <div class="flex-1" style="padding-right:90px">
<model-search :value="pageData.com_data" :is-page-settings="true"></model-search> <model-search :value="pageData.com_data" :is-page-settings="true"></model-search>
@ -33,7 +33,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { background_computer, gradient_computer } from '@/utils'; import { background_computer, gradient_computer } from '@/utils';
import { isEmpty } from 'lodash';
interface Props { interface Props {
pageData: any; pageData: any;
showPage: boolean; showPage: boolean;
@ -61,6 +61,7 @@ const roll_style = computed(() => {
} else { } else {
style += `background: transparent;`; style += `background: transparent;`;
} }
console.log(style);
return style return style
}); });
const url_computer = (name: string) => { const url_computer = (name: string) => {
@ -78,7 +79,7 @@ const text_style = computed(() => `font-weight:${ new_style.value.header_backgro
transform: translateX(-50%); transform: translateX(-50%);
.roll { .roll {
width: 39rem; width: 39rem;
padding: 1.5rem 1.2rem 0.9rem 1.2rem; padding-bottom: 0.9rem;
margin: 0 auto; margin: 0 auto;
cursor: pointer; cursor: pointer;
} }

View File

@ -82,7 +82,6 @@ const base_list = reactive({
{ id: '3', name: '风格3', url: new URL(`../../assets/images/components/page-settings/theme-3.png`, import.meta.url).href }, { id: '3', name: '风格3', url: new URL(`../../assets/images/components/page-settings/theme-3.png`, import.meta.url).href },
{ id: '4', name: '风格4', url: new URL(`../../assets/images/components/page-settings/theme-4.png`, import.meta.url).href }, { id: '4', name: '风格4', url: new URL(`../../assets/images/components/page-settings/theme-4.png`, import.meta.url).href },
{ id: '5', name: '风格5', url: new URL(`../../assets/images/components/page-settings/theme-5.png`, import.meta.url).href }, { id: '5', name: '风格5', url: new URL(`../../assets/images/components/page-settings/theme-5.png`, import.meta.url).href },
{ id: '6', name: '风格6', url: new URL(`../../assets/images/components/page-settings/theme-6.png`, import.meta.url).href },
], ],
bottom_navigation: [ bottom_navigation: [
{ name: '显示', value: '1' }, { name: '显示', value: '1' },

View File

@ -23,9 +23,9 @@ const default_data = {
header_background_direction: '180deg', header_background_direction: '180deg',
header_background_img_style: 2, header_background_img_style: 2,
header_background_img_url: [], header_background_img_url: [],
header_background_title_color: '#000', header_background_title_color: '#333',
header_background_title_typeface: '500', header_background_title_typeface: '500',
header_background_title_size: 14, header_background_title_size: 16,
function_buttons_type: 'black', function_buttons_type: 'black',
immersive_style: false, immersive_style: false,
up_slide_display: true, up_slide_display: true,
@ -56,16 +56,10 @@ const default_data = {
const default_config = { const default_config = {
style: { style: {
theme_1: {}, theme_1: {},
theme_2: { theme_2: {},
}, theme_3: {},
theme_3: { theme_4: {},
}, theme_5: {},
theme_4: {
},
theme_5: {
},
theme_6: {
},
}, },
}; };
const form = ref(props.value); const form = ref(props.value);

View File

@ -54,7 +54,7 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item v-if="['1', '2'].includes(search_content.theme)" label="标题名称"> <el-form-item v-if="['1', '2'].includes(search_content.theme)" label="标题名称">
<color-text-size-group v-model:color="form.background_title_color" v-model:typeface="form.background_title_typeface" v-model:size="form.background_title_size" default-color="#000000"></color-text-size-group> <color-text-size-group v-model:color="form.header_background_title_color" v-model:typeface="form.header_background_title_typeface" v-model:size="form.header_background_title_size" default-color="#000000"></color-text-size-group>
</el-form-item> </el-form-item>
</card-container> </card-container>
</el-form> </el-form>
@ -91,8 +91,8 @@ const common_styles_update = (val: Object) => {
form.value.common_style = val; form.value.common_style = val;
}; };
const mult_color_picker_event = (arry: color_list[], type: number) => { const mult_color_picker_event = (arry: color_list[], type: number) => {
form.value.background_color_list = arry; form.value.header_background_color_list = arry;
form.value.background_direction = type.toString(); form.value.header_background_direction = type.toString();
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -59,10 +59,10 @@ const defaultFooterNav: DefaultFooterNav = {
content: { content: {
theme: '1', theme: '1',
logo: [], logo: [],
title: '', title: '新建页面',
link: {}, link: {},
indicator_location: 'center', indicator_location: 'center',
positioning_name: '', positioning_name: '默认定位名称',
is_arrows_show: true, is_arrows_show: true,
is_center: false, is_center: false,
is_icon_show: true, is_icon_show: true,
@ -91,9 +91,9 @@ const defaultFooterNav: DefaultFooterNav = {
header_background_direction: '180deg', header_background_direction: '180deg',
header_background_img_style: 2, header_background_img_style: 2,
header_background_img_url: [], header_background_img_url: [],
header_background_title_color: '#000', header_background_title_color: '#333',
header_background_title_typeface: '500', header_background_title_typeface: '500',
header_background_title_size: 14, header_background_title_size: 16,
function_buttons_type: 'black', function_buttons_type: 'black',
immersive_style: false, immersive_style: false,
up_slide_display: true, up_slide_display: true,