Merge branch 'dev-sws' into dev-yxl
|
|
@ -43,6 +43,11 @@
|
|||
### DIY图片展示
|
||||

|
||||
|
||||
### 当前DIY端对应ShopXO后端版本
|
||||
| DIY端 | 后端 |
|
||||
|----|----|
|
||||
| v1.0.0 | v6.3.0 |
|
||||
|
||||
|
||||
## 安装依赖包
|
||||
```sh
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
## v6.3.0(2024-10-21)
|
||||
## v6.3.0(2024-10-22)
|
||||
1. 发布DIY装修,可以自由设计手机模板
|
||||
2. 内置基础组件【轮播、搜索、用户信息、导航组、公告、视频、选项卡、选项卡轮播、文章选项卡、文章列表、商品选项卡、商品列表、图片魔方、数据魔方、热区、自定义】
|
||||
3. 内置插件组件【限时秒杀、优惠券】
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 395 KiB |
|
Before Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 722 B |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 927 B |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 850 B |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 639 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 745 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 86 KiB |
|
Before Width: | Height: | Size: 63 KiB |
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="flex-col align-c jc-c w h bg-f" :style="container_style">
|
||||
<img :style="style" :src="noData_image" />
|
||||
<img :style="style" :src="no_data_image" />
|
||||
<p class="cr-c mt-12" :style="text_style">{{ text }}</p>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -20,7 +20,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||
size: '14px',
|
||||
text: '暂无数据',
|
||||
});
|
||||
const noData_image = ref(common_store.common.config.attachment_host + `/static/diy/images/noData.png`);
|
||||
const no_data_image = ref(common_store.common.config.attachment_host + `/static/diy/images/no-data.png`);
|
||||
const style = computed(() => {
|
||||
return {
|
||||
width: props.imgWidth,
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<div class="re pa-20" :style="style">
|
||||
<div class="flex-row jc-sb align-c mb-20">
|
||||
<div class="flex-1 flex-row align-c gap-12">
|
||||
<img class="round" src="@/assets/images/components/model-user-info/avatar.png" :width="base_data.user_avatar_size" :height="base_data.user_avatar_size" />
|
||||
<img class="round" :src="avatar_image" :width="base_data.user_avatar_size" :height="base_data.user_avatar_size" />
|
||||
<div class="flex-col gap-8">
|
||||
<div class="size-16 fw" :style="user_name_style">昵称</div>
|
||||
<div v-if="id_bool" class="plr-6 ptb-1 radius-sm" :style="number_code_style">ID:88888888</div>
|
||||
|
|
@ -31,6 +31,8 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { common_styles_computer, gradient_computer, common_img_computer } from '@/utils';
|
||||
import { commonStore } from '@/store';
|
||||
const common_store = commonStore();
|
||||
/**
|
||||
* @description: 用户信息(渲染)
|
||||
* @param value{Object} 传过来的数据,用于数据渲染
|
||||
|
|
@ -57,6 +59,8 @@ interface icon_params {
|
|||
icon: string;
|
||||
link: pageLinkList;
|
||||
}
|
||||
|
||||
const avatar_image = ref(common_store.common.config.attachment_host + `/static/diy/images/components/model-user-info/avatar.png`);
|
||||
const config = ref<string[]>(['order_count', 'goods_favor_count', 'goods_browse_count', 'integral_number']);
|
||||
const icon_setting = ref<icon_params[]>([
|
||||
{ id: '1', img: [], icon: '', link: {} },
|
||||
|
|
|
|||
|
|
@ -8,13 +8,15 @@
|
|||
<template v-else>
|
||||
<image-empty v-model="video_img" error-img-style="width:60px;height:60px;"></image-empty>
|
||||
</template>
|
||||
<img src="@/assets/images/components/model-video/video.png" class="middle box-shadow-sm round" width="60" height="60" />
|
||||
<img :src="video_src" class="middle box-shadow-sm round" width="60" height="60" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { common_styles_computer, common_img_computer } from '@/utils';
|
||||
import { commonStore } from '@/store';
|
||||
const common_store = commonStore();
|
||||
/**
|
||||
* @description: 视频 (渲染)
|
||||
* @param value{Object} 传过来的数据,用于数据渲染
|
||||
|
|
@ -25,7 +27,7 @@ const props = defineProps({
|
|||
default: () => ({}),
|
||||
},
|
||||
});
|
||||
|
||||
const video_src = ref(common_store.common.config.attachment_host + `/static/diy/images/components/model-video/video.png`);
|
||||
const style = ref('');
|
||||
const style_container = ref('');
|
||||
const style_img_container = ref('');
|
||||
|
|
@ -51,7 +53,7 @@ watch(
|
|||
}
|
||||
style.value = video_ratio;
|
||||
style_container.value = common_styles_computer(new_style.common_style);
|
||||
style_img_container.value = common_img_computer(new_style.common_style);
|
||||
style_img_container.value = common_img_computer(new_style.common_style);
|
||||
},
|
||||
{ immediate: true, deep: true }
|
||||
);
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@
|
|||
<div class="w h" :style="up_slide_img_style"></div>
|
||||
</div>
|
||||
<div class="pt-15 pl-18 pr-22 w pb-6">
|
||||
<img class="img" :style="`Filter: brightness(${new_style.function_buttons_type == '0' ? 0 : 100})`" src="@/assets/images/layout/main/main-top.png" />
|
||||
<img class="img" :style="`Filter: brightness(${new_style.function_buttons_type == '0' ? 0 : 100})`" :src="main_top_img" />
|
||||
</div>
|
||||
<div class="model-head tc re mlr-12 mt-6">
|
||||
<div class="flex-col" :style="`gap: ${ new_style.data_alone_row_space }px`">
|
||||
<div class="flex-col" :style="`gap: ${new_style.data_alone_row_space}px`">
|
||||
<div class="model-head-content flex-row align-c jc-sb gap-16 re">
|
||||
<div v-if="['1', '2', '3'].includes(form.theme)" class="flex-1">
|
||||
<div class="flex-1 flex-row align-c jc-c h gap-16" :class="position_class" :style="[{ 'justify-content': form?.indicator_location || 'center' }, text_style]">
|
||||
|
|
@ -73,6 +73,8 @@
|
|||
<script setup lang="ts">
|
||||
import { background_computer, gradient_computer } from '@/utils';
|
||||
import { isEmpty } from 'lodash';
|
||||
import { commonStore } from '@/store';
|
||||
const common_store = commonStore();
|
||||
|
||||
interface Props {
|
||||
pageData: any;
|
||||
|
|
@ -85,6 +87,7 @@ const props = withDefaults(defineProps<Props>(), {
|
|||
scollTop: 0,
|
||||
});
|
||||
const emits = defineEmits(['page_settings']);
|
||||
const main_top_img = ref(common_store.common.config.attachment_host + `/static/diy/images/layout/main/main-top.png`);
|
||||
const page_settings = () => {
|
||||
emits('page_settings');
|
||||
};
|
||||
|
|
|
|||