Merge remote-tracking branch 'origin/dev-yxl' into dev-sws
commit
8cd8086ec2
|
|
@ -4,7 +4,7 @@
|
|||
<el-radio-group v-if="typeList.includes('typeface')" v-model="typeface">
|
||||
<el-radio v-for="item in font_weight" :key="item.value" :value="item.value">{{ item.name }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-form-item v-if="typeList.includes('size')" label="字号" label-width="40" class="mb-0 w word-size">
|
||||
<el-form-item v-if="typeList.includes('size')" label="字号" label-width="40" class="mb-0 w form-item-child-label">
|
||||
<slider v-model="size" :max="100"></slider>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
|
@ -39,10 +39,4 @@ const font_weight = [
|
|||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.word-size {
|
||||
:deep(.el-form-item__label) {
|
||||
color: #999;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { common_styles_computer, radius_computer, get_math } from '@/utils';
|
||||
import { isEmpty, cloneDeep } from 'lodash';
|
||||
import { isEmpty, cloneDeep, throttle } from 'lodash';
|
||||
import { Swiper, SwiperSlide } from 'swiper/vue';
|
||||
import { Autoplay, EffectCoverflow } from 'swiper/modules';
|
||||
import 'swiper/css';
|
||||
|
|
@ -164,7 +164,10 @@ watchEffect(() => {
|
|||
length: carousel_length
|
||||
};
|
||||
// 更新轮播图的key,确保更换时能重新更新轮播图
|
||||
carouselKey.value = get_math();
|
||||
// 添加节流处理,一秒只执行一次
|
||||
throttle(() => {
|
||||
carouselKey.value = get_math();
|
||||
}, 1000);
|
||||
}
|
||||
//#endregion
|
||||
});
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { common_styles_computer, get_math, gradient_handle, padding_computer, radius_computer } from '@/utils';
|
||||
import { isEmpty, cloneDeep } from 'lodash';
|
||||
import { isEmpty, cloneDeep, throttle } from 'lodash';
|
||||
import ShopAPI from '@/api/shop';
|
||||
|
||||
const props = defineProps({
|
||||
|
|
@ -449,7 +449,10 @@ watchEffect(() => {
|
|||
notice_length: notice_length,
|
||||
};
|
||||
// 更新轮播图的key,确保更换时能重新更新轮播图
|
||||
carouselKey.value = get_math();
|
||||
// 添加节流处理,一秒只执行一次
|
||||
throttle(() => {
|
||||
carouselKey.value = get_math();
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
//#endregion
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { common_styles_computer, radius_computer, get_math } from '@/utils';
|
||||
import { isEmpty, cloneDeep } from 'lodash';
|
||||
import { isEmpty, cloneDeep, throttle } from 'lodash';
|
||||
|
||||
const props = defineProps({
|
||||
value: {
|
||||
|
|
@ -141,7 +141,10 @@ watch(props.value, (val) => {
|
|||
is_roll: display_is_roll,
|
||||
};
|
||||
// 更新轮播图的key,确保更换时能重新更新轮播图
|
||||
carouselKey.value = get_math();
|
||||
// 添加节流处理,一秒只执行一次
|
||||
throttle(() => {
|
||||
carouselKey.value = get_math();
|
||||
}, 1000);
|
||||
}
|
||||
nextTick(() => {
|
||||
if (!isEmpty(bannerImg.value)) {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { background_computer, common_styles_computer, get_math, gradient_computer, gradient_handle, radius_computer } from '@/utils';
|
||||
import { isEmpty, cloneDeep } from 'lodash';
|
||||
import { isEmpty, cloneDeep, throttle } from 'lodash';
|
||||
|
||||
const props = defineProps({
|
||||
value: {
|
||||
|
|
@ -134,7 +134,10 @@ watchEffect(() => {
|
|||
notice_length: notice_length
|
||||
};
|
||||
// 更新轮播图的key,确保更换时能重新更新轮播图
|
||||
carouselKey.value = get_math();
|
||||
// 添加节流处理,一秒只执行一次
|
||||
throttle(() => {
|
||||
carouselKey.value = get_math();
|
||||
}, 1000);
|
||||
}
|
||||
//#endregion
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@
|
|||
<template v-if="!isEmpty(substance.icon_class)">
|
||||
<el-form-item label="左侧图标">
|
||||
<div class="flex-col w gap-10">
|
||||
<el-form-item label="大小" label-width="40" class="word-size">
|
||||
<el-form-item label="大小" label-width="40" class="form-item-child-label">
|
||||
<slider v-model="form.icon_size" :max="100"></slider>
|
||||
</el-form-item>
|
||||
<el-form-item label="颜色" label-width="40" class="word-size">
|
||||
<el-form-item label="颜色" label-width="40" class="form-item-child-label">
|
||||
<color-picker v-model="form.icon_color" default-color="#999"></color-picker>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
|
@ -27,10 +27,10 @@
|
|||
<template v-else>
|
||||
<el-form-item label="左侧图片">
|
||||
<div class="flex-col w gap-10">
|
||||
<el-form-item label="宽度" label-width="40" class="word-size">
|
||||
<el-form-item label="宽度" label-width="40" class="form-item-child-label">
|
||||
<slider v-model="form.title_width" :max="1000"></slider>
|
||||
</el-form-item>
|
||||
<el-form-item label="高度" label-width="40" class="word-size">
|
||||
<el-form-item label="高度" label-width="40" class="form-item-child-label">
|
||||
<slider v-model="form.title_height" :max="1000"></slider>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
|
@ -125,10 +125,4 @@ const mult_color_picker_event = (arry: color_list[], type: number) => {
|
|||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
.word-size {
|
||||
:deep(.el-form-item__label) {
|
||||
color: #999;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
<!-- 标题 -->
|
||||
<div :style="trends_config('title')" class="text-line-2">{{ item.title }}</div>
|
||||
<!-- 进度条 -->
|
||||
<div v-if="form.shop_style_type == '1'" class="flex-row align-c gap-6">
|
||||
<!-- <div v-if="form.shop_style_type == '1'" class="flex-row align-c gap-6">
|
||||
<div class="re flex-1">
|
||||
<div class="slide-bottom" :style="`background: ${new_style.progress_bg_color}`"></div>
|
||||
<div class="slide-top" :style="` width: 51%; ${slide_active_color}`">
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<span class="size-10" :style="`color: ${new_style.progress_text_color}`">已抢51%</span>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="flex-row align-e gap-10 jc-sb">
|
||||
<div class="flex-col gap-5">
|
||||
|
|
@ -160,7 +160,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { background_computer, common_styles_computer, get_math, gradient_computer, gradient_handle, padding_computer, radius_computer } from '@/utils';
|
||||
import { isEmpty } from 'lodash';
|
||||
import { isEmpty, throttle } from 'lodash';
|
||||
import SeckillAPI from '@/api/seckill';
|
||||
import { online_url } from '@/utils';
|
||||
import { Swiper, SwiperSlide } from 'swiper/vue';
|
||||
|
|
@ -434,7 +434,10 @@ watchEffect(() => {
|
|||
// 判断是平移还是整屏滚动
|
||||
slides_per_group.value = new_style.value.rolling_fashion == 'translation' ? 1 : form.value.carousel_col;
|
||||
// 更新轮播图的key,确保更换时能重新更新轮播图
|
||||
carouselKey.value = get_math();
|
||||
// 添加节流处理,一秒只执行一次
|
||||
throttle(() => {
|
||||
carouselKey.value = get_math();
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
//容器高度
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
<el-input v-model="form.button_text" placeholder="请输入按钮文字"></el-input>
|
||||
</el-form-item>
|
||||
</template>
|
||||
|
||||
</template>
|
||||
</card-container>
|
||||
<div class="divider-line"></div>
|
||||
|
|
@ -162,7 +161,7 @@ const change_shop_type = () => {
|
|||
};
|
||||
// 选择某些风格时, 切换到对应的按钮
|
||||
const change_style = (val: any): void => {
|
||||
form.value.theme = val;
|
||||
form.value.shop_style_type = val;
|
||||
if (!is_revise.value) {
|
||||
if (['3'].includes(val) && form.value.shop_type == 'text') {
|
||||
form.value.shop_type = 'icon';
|
||||
|
|
|
|||
|
|
@ -50,12 +50,6 @@
|
|||
</template>
|
||||
<card-container>
|
||||
<div class="mb-12">商品样式</div>
|
||||
<el-form-item label="内容圆角">
|
||||
<radius :value="form.shop_radius"></radius>
|
||||
</el-form-item>
|
||||
<el-form-item label="图片圆角">
|
||||
<radius :value="form.shop_img_radius"></radius>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品名称">
|
||||
<color-text-size-group v-model:color="form.shop_title_color" v-model:typeface="form.shop_title_typeface" v-model:size="form.shop_title_size" default-color="#000000"></color-text-size-group>
|
||||
</el-form-item>
|
||||
|
|
@ -65,6 +59,25 @@
|
|||
<el-form-item label="原价价格">
|
||||
<color-picker v-model="form.original_price_color"></color-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="秒杀角标">
|
||||
<div class="flex-col gap-10">
|
||||
<el-radio-group v-model="form.seckill_subscript_location">
|
||||
<el-radio v-for="item in base_list.location_list" :key="item.value" :value="item.value">{{ item.name }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-form-item label="文字" label-width="40" class="form-item-child-label">
|
||||
<color-picker v-model="form.seckill_subscript_text_color"></color-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="背景" label-width="40" class="form-item-child-label">
|
||||
<color-picker v-model="form.seckill_subscript_bg_color"></color-picker>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="内容圆角">
|
||||
<radius :value="form.shop_radius"></radius>
|
||||
</el-form-item>
|
||||
<el-form-item label="图片圆角">
|
||||
<radius :value="form.shop_img_radius"></radius>
|
||||
</el-form-item>
|
||||
<el-form-item label="内间距">
|
||||
<padding :value="form.shop_padding"></padding>
|
||||
</el-form-item>
|
||||
|
|
@ -79,19 +92,6 @@
|
|||
<slider v-model="form.content_outer_height" :max="1000"></slider>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<el-form-item label="秒杀角标">
|
||||
<div class="flex-col gap-10">
|
||||
<el-radio-group v-model="form.seckill_subscript_location">
|
||||
<el-radio v-for="item in base_list.location_list" :key="item.value" :value="item.value">{{ item.name }}</el-radio>
|
||||
</el-radio-group>
|
||||
<el-form-item label="文字" style="color: #333;" label-width="40">
|
||||
<color-picker v-model="form.seckill_subscript_text_color"></color-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="背景" style="color: #333;" label-width="40">
|
||||
<color-picker v-model="form.seckill_subscript_bg_color"></color-picker>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</card-container>
|
||||
<!-- 秒杀按钮 -->
|
||||
<template v-if="data.is_shop_show == '1'">
|
||||
|
|
|
|||
|
|
@ -205,3 +205,10 @@ p {
|
|||
--el-loading-spinner-size: 13rem;
|
||||
--el-loading-fullscreen-spinner-size: 13rem;
|
||||
}
|
||||
// el-form-item 子级form-item label样式调整
|
||||
.form-item-child-label {
|
||||
.el-form-item__label {
|
||||
color: #999;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -319,3 +319,51 @@
|
|||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.layout-toggle-bar {
|
||||
cursor: pointer;
|
||||
height: 6.4rem;
|
||||
width: 2rem;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
left: 0;
|
||||
z-index: 3;
|
||||
.layout-toggle-bar-top, .layout-toggle-bar-bottom {
|
||||
position: absolute;
|
||||
width: 0.2rem;
|
||||
border-radius: 0.2rem;
|
||||
height: 3rem;
|
||||
left: 1rem;
|
||||
background: #e6e6e6;
|
||||
transition: 1s ease;
|
||||
}
|
||||
.layout-toggle-bar-bottom {
|
||||
top: 2.6rem;
|
||||
}
|
||||
}
|
||||
.layout-toggle-bar-close:hover {
|
||||
.layout-toggle-bar-top, .layout-toggle-bar-bottom {
|
||||
background: $cr-main;
|
||||
transition: 1s ease;
|
||||
}
|
||||
.layout-toggle-bar-top {
|
||||
transform: rotate(12deg) scale(1.05) translateY(-0.2rem);
|
||||
}
|
||||
.layout-toggle-bar-bottom {
|
||||
transform: rotate(-12deg) scale(1.05) translateY(0.2rem);
|
||||
}
|
||||
}
|
||||
|
||||
.layout-toggle-bar-open:hover {
|
||||
.layout-toggle-bar-top, .layout-toggle-bar-bottom {
|
||||
background: $cr-main;
|
||||
transition: 1s ease;
|
||||
}
|
||||
.layout-toggle-bar-top {
|
||||
transform: rotate(-12deg) scale(1.05) translateY(-0.2rem);
|
||||
}
|
||||
.layout-toggle-bar-bottom {
|
||||
transform: rotate(12deg) scale(1.05) translateY(0.2rem);
|
||||
}
|
||||
}
|
||||
|
|
@ -15,9 +15,9 @@
|
|||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</div>
|
||||
<div class="drawer-container" :style="`width: ${diy_data.length > 0 ? '12.8rem' : '0px'}`">
|
||||
<div class="drawer-content pt-5" :style="{ left: diy_data.length > 0 ? '0' : '-100%' }">
|
||||
<div class="size-14 cr-3 fw pl-12 drawer-title" :style="{ opacity: diy_data.length > 0 ? '1' : '0' }">已选组件({{ diy_data.length }})</div>
|
||||
<div class="drawer-container" :style="`width: ${ drawer_selected ? '12.8rem' : '0px'}`">
|
||||
<div class="drawer-content pt-5" :style="{ left: drawer_selected ? '0' : '-100%' }">
|
||||
<div class="size-14 cr-3 fw pl-12 drawer-title" :style="{ opacity: drawer_selected ? '1' : '0' }">已选组件({{ diy_data.length }})</div>
|
||||
<div ref="left_scrollTop" class="drawer-drag-area">
|
||||
<VueDraggable v-model="diy_data" :animation="500" target=".sort-target" :scroll="true" :on-sort="on_sort">
|
||||
<TransitionGroup type="transition" tag="ul" name="fade" class="sort-target flex-col">
|
||||
|
|
@ -32,7 +32,11 @@
|
|||
</div>
|
||||
</div>
|
||||
<!-- 视图渲染 -->
|
||||
<div class="main">
|
||||
<div class="main re">
|
||||
<div v-if="diy_data.length > 0" :class="['layout-toggle-bar', drawer_selected ? 'layout-toggle-bar-close' : 'layout-toggle-bar-open']" @click="toggle_drawer">
|
||||
<div class="layout-toggle-bar-top"></div>
|
||||
<div class="layout-toggle-bar-bottom"></div>
|
||||
</div>
|
||||
<div class="model">
|
||||
<div class="model-content">
|
||||
<div class="acticons">
|
||||
|
|
@ -248,7 +252,18 @@ watch(
|
|||
footer_nav.value = newValue;
|
||||
}
|
||||
);
|
||||
|
||||
// 已选组件逻辑处理
|
||||
const drawer_selected = ref(false);
|
||||
watchEffect(() => {
|
||||
if (diy_data.value.length > 0) {
|
||||
drawer_selected.value = true;
|
||||
} else {
|
||||
drawer_selected.value = false;
|
||||
}
|
||||
})
|
||||
const toggle_drawer = () => {
|
||||
drawer_selected.value = !drawer_selected.value;
|
||||
};
|
||||
// 父组件调用的方法
|
||||
const emits = defineEmits(['rightUpdate', 'import', 'export']);
|
||||
const activeNames = reactive(['base', 'plugins', 'tool']);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
const temp_token = '01e8d1181d53260607d2b0180a2ccc68' || '';
|
||||
const temp_attachment_host = 'http://shopxo.com';
|
||||
const temp_token = 'e9448c2efc2bf9234aac50306aaaa5ab' || '';
|
||||
const temp_attachment_host = 'http://shopxo.com/public';
|
||||
// 导出token
|
||||
export default { temp_token, temp_attachment_host };
|
||||
|
|
|
|||
Loading…
Reference in New Issue