vue3.x+elementPlus+swiper+vuedraggable实现页面装修

本文主要是介绍vue3.x+elementPlus+swiper+vuedraggable实现页面装修,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

该实现代码依赖框架:vue3.x+elementPlus+swiper+vuedraggable,做好前期工作,可直接在下面的附件处点击下载链接来下载相关文件;文件中包括搜索/图文广告/滚动消息三个模块代码示例,其他组件实现思路相同,可自行定义。


需求

在PC管理端可以自定义装修页面,例如顶部搜索,轮播广告,公告等模块;并在H5或Uniapp 移动端渲染展示

示例截图:


前端核心代码

1.自定义组件声明

在components下新建文件夹,将所有组件相关代码都放在此文件夹下,每个组件是一个文件夹,每个文件夹下包含index.vue、operatin.vue 文件一个是组件展示在中间区域,一个是设置配置文件,再在主文件夹下新建index.js 引入并注册所需的组件,并在main.js 文件中引入,使用。

截图示例:

main.js引入

2.自定义组件JS

定义组件集合文件-designData.js 其中定义的数据展示在左侧区域

引入相关文件

import {componentBaseData} from '@/views/design/components/designData'

并赋值对应参数(leftMenuList)

const leftMenuList = ref(deepClone(componentBaseData))

//deepClone 自定义方法,深复制该数据,防止数据污染以及多个相同组件数据联动

截图示例:

3.装修展示页面

左侧模块展示主要代码:vuedraggable使用可查看相关文档

<draggable :list="leftMenuList" item-key="component" :animation="100" :sort='false' :group="{name: 'componentsdragg',pull:'clone'}"  class="draggable-component-wrap">

                    <template #item="{ element,index }"  >

                      <div class="list-component-item" :class="element.component">

                        <p class="img-icon"  :class="element.component+'-img-icon'"></p>

                        <p class="title">{{ element.name }}</p>

                      </div>

                    </template>

                  </draggable>

中间区域主要代码:自定义手机容器

asynDsignList:装修的模块数组

handleCompChange:当从左侧拖动模块或者改变模块顺序时方法

handleClickComp:点击对应模块时,高亮当前模块,并显示删除图标,以及右侧打开设置区域

<draggable :list="asynDsignList" item-key="component"

                  :group="{name: 'componentsdragg',pull:''}"

                  :disabled="false" class="draggable-component-phone-wrap"

                  @change="handleCompChange"

                >

                  <template #item="{ element,index }"  >

                    <div class="list-component-phone-item" :class="element.component ,{ 'c-active': activeOpIndex == index }">

                      <component

                      @click.native.stop="handleClickComp(element,index)"

                      :is="element.component" :compObj="element.props"

                      ></component>

                      <div class="img-operation-wrap" :class="{'hide':activeOpIndex != index}">

                        <p class="operation-item" @click="deleteComponent(element,index)">

                          <el-icon title="删除" :size="26" color="#ff1818">

                            <!-- <CircleCloseFilled /> -->

                            <CircleClose />

                          </el-icon>

                        </p>

                      </div>

                    </div>

                  </template>

                </draggable>

右侧设置区域 :

handleOperationChange:设置区域监听change方法

<component :is="`${asynDsignList[activeOpIndex].component}-operation`" :compObj="asynDsignList[activeOpIndex].props" @change="handleOperationChange"></component>

保存

将 asynDsignList 字段调用接口保存至库中,最好转义一下该字段:JSON.stringify(asynDsignList.value)

移动端展示

通过接口请求对应页面装修数据,在移动端也要定义跟pc端相对应的组件,文件命名,组件命名都要保持一致,使用component动态加载对应组件并渲染页面即可。


附件

页面装修下载链接

这篇关于vue3.x+elementPlus+swiper+vuedraggable实现页面装修的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qianqianNingmeng/article/details/131398569
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/377161

相关文章

golang 对象池sync.Pool的实现

《golang对象池sync.Pool的实现》:本文主要介绍golang对象池sync.Pool的实现,用于缓存和复用临时对象,以减少内存分配和垃圾回收的压力,下面就来介绍一下,感兴趣的可以了解... 目录sync.Pool的用法原理sync.Pool 的使用示例sync.Pool 的使用场景注意sync.

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

golang中slice扩容的具体实现

《golang中slice扩容的具体实现》Go语言中的切片扩容机制是Go运行时的一个关键部分,它确保切片在动态增加元素时能够高效地管理内存,本文主要介绍了golang中slice扩容的具体实现,感兴趣... 目录1. 切片扩容的触发append 函数的实现2. runtime.growslice 函数gro

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

Spring Boot 整合 Redis 实现数据缓存案例详解

《SpringBoot整合Redis实现数据缓存案例详解》Springboot缓存,默认使用的是ConcurrentMap的方式来实现的,然而我们在项目中并不会这么使用,本文介绍SpringB... 目录1.添加 Maven 依赖2.配置Redis属性3.创建 redisCacheManager4.使用Sp

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal