Vue进阶之Vue无代码可视化项目(八)

Vue无代码可视化项目

  • 右侧栏配置——配置面板
    • 右侧栏配置
      • RightPanel.vue
      • TextSetting.vue
      • ImageSetting.vue
      • ChartSetting.vue
    • 右侧栏和中间区域联动
      • TextSetting.vue
      • ImageSetting.vue
      • src/blocks/BlockRenderer.vue
      • src/blocks/internal/TextBlock.vue
      • src/blocks/internal/ImageBlock.vue
      • src/types/block.ts
      • src/mock/blocks.ts
    • vee-validate处理动态表单
      • package.json
      • TextSetting.vue

右侧栏配置——配置面板

右侧栏配置

将components/RightPanel.vue 移到components/RightPanel目录下去

  • src
    • components
      • RightPanel
        • RightPanel.vue
        • TextSetting.vue
        • ChartSetting.vue
        • ImageSetting.vue

RightPanel.vue

<script setup lang="ts">
// import {Lightning, Share } from '@icon-park/vue-next';
import {storeToRefs} from 'pinia';
import { computed } from 'vue';import {useEditorStore} from "@/stores/editor";import ChartSetting from './ChartSetting.vue';
import ImageSetting from './ImageSetting.vue';
// import type {Block} from '@/types/block';
import TextSetting from './TextSetting.vue';const editorStore=useEditorStore()const {selectedBlock}=storeToRefs(editorStore)const blockRightPanel = computed(()=>{if(!selectedBlock.value) return null;switch(selectedBlock.value.type){case 'text':return TextSetting;case 'image':return ImageSetting;case 'chart':return ChartSetting;default:return null;}
})
</script><template><div class="right-panel-wrapper" v-if="selectedBlock"><div class="right-panel-left"> <!-- selectedBlock存在后才去走props传入数据的逻辑 --><!-- <TextRightPanel v-if="selectedBlock"  :block="selectedBlock"/>   --><component :is="blockRightPanel"  :block="selectedBlock"/></div></div>
</template><style scoped>
.right-panel-wrapper {display: flex;height: 100%;width: 280px;background-color: #f5f5f5;border: 1px solid #e8e8e8;
}
.right-panel-left{display: flex;padding:0 10px;flex-direction: column;align-items: center;width: 100%;height: 100%;background-color: #e8e8e8;
}
</style>

这里,只有通过computed、watch、将他的api这些语法全部连接起来,它才会有一个响应式的表现,如果不这样做,只会在初始化进来的时候操作一次,后续的话,是不会再走的,这也是跟React很大的一个区别。之前探讨过更细颗粒度的更新,更细粒度的管理,在React中是通过信号的方式来进行状态的维护的。

const blockRightPanel = computed(()=>{if(!selectedBlock.value) return null;switch(selectedBlock.value.type){case 'text':return TextSetting;case 'image':return ImageSetting;case 'chart':return ChartSetting;default:return null;}
})

TextSetting.vue

<script setup lang="ts">
import type {TextBlock} from '@/types/block';const props=defineProps<{block:TextBlock
}>()
</script><template><input class="content" :value="props.block.props.content"/>
</template><style scoped>
.content{width:100%;
}
</style>

ImageSetting.vue

<script setup lang="ts">
import type {ImageBlock} from '@/types/block';const props=defineProps<{block:ImageBlock
}>()
</script><template><input class="content" :value="props.block.props.src"/>
</template><style scoped>
.content{width:100%;
}
</style>

ChartSetting.vue

<script setup lang="ts"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/51664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echarts所遇到的问题,个人记录

TreeMap 矩形树图&#xff0c;label设置富文本之后&#xff0c;无法垂直居中 font-size 支持rem&#xff0c;其余不支持 font-size 支持 rem&#xff0c;但是其余的属性如height&#xff0c;width等不支持 echarts-for-react 绑定事件&#xff0c;会覆盖实例上绑定的 当给cha…

[C++探索]初始化列表,static成员,友元函数,内部类,匿名对象

&#x1f496;&#x1f496;&#x1f496;欢迎来到我的博客&#xff0c;我是anmory&#x1f496;&#x1f496;&#x1f496; 又和大家见面了 欢迎来到C探索系列 作为一个程序员你不能不掌握的知识 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭建个人网站…

Linux基础操作指令

Linux的操作特点&#xff1a;纯命令行&#xff08;虽然也有图形化界面&#xff0c;但主要是工程师使用&#xff0c;意义不大&#xff09; windows的操作特点&#xff1a;图形化界面&#xff08;也有纯命令行的形式&#xff0c;但其更贴近大众&#xff0c;命令行学习成本高&…

服务暴露 traefik

一。traefik 部署 前置资源 还是那个网站&#xff0c;这里复制 entryPoints&#xff0c;进入traefik的大门 可选在哪台机器上部署 traefik 部署 用 Daemonset 的方式是为了&#xff0c;加机器到集群后&#xff0c;能自动部署traefik 到目标机器 注意 8084端口 必须加…

一种多策略改进黑翅鸢智能优化算法IBKA(2024年新出优化算法)种群初始化精英反向+透镜成像反向学习+黄金正弦变异策略

一种多策略改进黑翅鸢智能优化算法IBKA&#xff08;2024年新出优化算法&#xff09; 种群初始化精英反向策略透镜成像反向学习策略黄金正弦变异策略 文章目录 前言一种多策略改进黑翅鸢智能优化算法IBKA&#xff08;2024年新出优化算法&#xff09; 种群初始化精英反向策略透镜…

sentinel 服务流量控制 、熔断降级

1、什么是 sentinel,可以用来干什么 sentinel是用来在微服务系统中保护微服务对的作用,如何避免服务的雪崩、熔断、降级,说白了就是用来替换hystrix。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 官网:GitHub - alibaba/Se…

sqlilabs解题方法

Lass1 查询id为1的用户名和密码 查询id为2的用户名和密码 没有回显&#xff0c;不含id-1的行 判断字段数&#xff0c;字段数为3 查询数据库用户名&#xff0c;和数据库名 查询时id必须超出数据库以外&#xff0c;一般用-1 用户名&#xff1a;user() 数据库名&#xff1a;databa…

【电路笔记】-共源JFET放大器

共源JFET放大器 文章目录 共源JFET放大器1、概述2、共源JFET放大器3、JFET放大器电流和功率增益共源JFET放大器使用结场效应晶体管作为其主要有源器件,提供高输入阻抗特性。 1、概述 普通源JFET放大器与共射极BJT放大器相比有一个重要优点,即FET具有极高的输入阻抗,再加上低…

COMP9315-install and setup postgresql15.6

学习需要安装一个最新的postgresql版本&#xff0c;参考最新的链接 COMP9315 24T1 - Prac Exercise 01 (unsw.edu.au) 内容待一步一步跟着链接文档操作&#xff1a;

在IDEA中切换分支没有反应

说明&#xff1a;记录一次在IDEA中切换分支没有反应的情况&#xff0c;新建一个分支后&#xff0c;准备暂存代码&#xff0c;切换到其他分支去&#xff0c;发现怎么切都没有反应&#xff0c;也没有切过去&#xff1b; 解决&#xff1a;首先&#xff0c;我想到是不是当前新分支…

在线心里咨询系统的设计与实现2024(代码+论文+开题报告+ppt)

下载在最后 技术栈: vuemysqlspringboot 展示: 下载地址: https://download.csdn.net/download/hhtt19820919/89583101 备注: 运行有问题请私信我,私信按钮在文章左边)

深度学习实战84-数学公式和中文混合高精度识别实战,实现数学题目以及公式识别系统(latexOCR)

大家好,我是微学AI,今天给大家介绍一下深度学习实战84-数学公式和中文混合高精度识别实战,实现数学题目以及公式识别系统可视化(latexOCR)。在数字化时代,数学公式的自动识别和转换变得尤为重要,尤其是在教育、科研以及出版领域。本文将详细探讨一个基于深度学习的数学公式…

【网络安全】文件上传黑白名单及数组绕过技巧

不安全的文件上传&#xff08;Unsafe FileUpload&#xff09; 不安全的文件上传是指Web应用程序在处理用户上传的文件时&#xff0c;没有采取足够的安全措施&#xff0c;导致攻击者可能利用这些漏洞上传恶意文件&#xff0c;进而对服务器或用户造成危害。 目录 一、文件上传…

1. mqant——入门篇

0. 介绍 mqant技术架构和开发流程的学习笔记。 https://github.com/liangdas/mqantIntroduction mqant 的文档库 mqant是一个微服务框架。目标是简化分布式系统开发。 mqant的核心是简单易用,关注业务场景,因此会针对特定场景研究一些特定组件和解决方案,方便开发者使用。 …

二分类、多分类、多标签分类的评价指标

前言 在机器学习和深度学习中&#xff0c;常见的分类任务可以分为&#xff1a;二分类&#xff08;Binary Classification); 多分类&#xff08;Multi-class Classification); 多标签分类&#xff08;Multi-label Classification); 序列分类 (Sequence Classification); 图分类…

Notcoin 即将空投:你需要知道什么

Notcoin 于 2024 年 1 月推出&#xff0c;是 Telegram 上的一款边玩边赚游戏&#xff0c;用户可以通过点击硬币图标获得 Notcoin 代币 (NOT) 形式的奖励。NOT 建立在开放网络区块链&#xff08;称为“TON 区块链”&#xff09;上&#xff0c;由 Open Builders 创始人 Sasha Plo…

IOS-05 Swift循环控制语句

在 Swift 编程语言中&#xff0c;控制语句用于决定程序的执行流程&#xff0c;使我们能够根据不同的条件和情况来控制代码的执行顺序。下面我们将详细介绍几种常见的控制语句 一、for 循环 let names ["zhangsan","lisi"] for name in names{print(name…

DNS服务器搭建练习

练习要求&#xff1a; 3、搭建一个dns服务器&#xff0c;客户端可以使用该服务器解析域名www.haha.com为web服务器的 4、将客户端的ip地址中的域名解析服务器地址修改为第3题的dnt服务器的p&#xff0c;使用ping命令ping www.haha.com看能否ping通&#xff0c;用curl命令访问c…

FPGA开发——LED流水灯实现先从左往右流水,再从右往左流水

一、概述 我们在设计完一个方向的流水灯的设计时&#xff0c;总是会想实现让流水灯倒着流水回去的设计&#xff0c;这里我也是一样&#xff0c;实现这种设计的方法有很多种&#xff0c;其中就有直接使用case语句将所有可能包含进去编写&#xff0c;这种设计方法是最简单的&…