Mr_HJ / form-generator项目学习-增加自定义的超融组件(二)

news/2024/7/10 2:33:59 标签: vue, ruoyi-nbcio, 前端, 表单设计器

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统

更多nbcio-boot功能请看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888
 

这部分主要介绍,改造原有的form-generator模拟显示方式

1、因为原先用iframe的方式,用固定的html文件模板方式处理,这样很不灵活,特别是对自己自定义的组件来说。

    所以改专用的preview.vue来处理,如下:

<template>
  <el-dialog v-bind="$attrs" :close-on-click-modal="false" :modal-append-to-body="false"
    append-to-body v-on="$listeners" @open="Open" @close="close"
    title="预览" :width="formConf.generalWidth">
    <parser :form-conf="formConf" @submit="submitForm" :key="key" ref="previewForm" />
    <div slot="footer">
      <el-button @click="close">{{'取 消'}}</el-button>
      <el-button type="primary" @click="handelConfirm">{{'确 定'}}
      </el-button>
    </div>
  </el-dialog>
</template>

<script>
import Parser from '@/utils/generator/parser'
export default {
  components: { Parser },
  props: ['formData'],
  data() {
    return {
      key: +new Date(),
      formConf: {}
    }
  },
  created() { },
  methods: {
    Open() {
      this.key = +new Date()
      this.formConf = this.formData
    },
    onClose() {
    },
    close(e) {
      this.$emit('update:visible', false)
    },
    handelConfirm() {
      this.$refs.previewForm && this.$refs.previewForm.submitForm()
    },
    submitForm(data, callback) {
      console.log('submitForm提交数据:', data)
      if (callback && typeof callback === "function") {
        callback()
      }
    }
  }
}
</script>

2、代码显示里面也进行单独处理,同时修改setEditorValue,保证每次打开都能显示代码(原先有时候可以有时候不显示)

setEditorValue(id, type, codeStr) {
     // if (editorObj[type]) {
     //   editorObj[type].setValue(codeStr)
     // } else {
        editorObj[type] = monaco.editor.create(document.getElementById(id), {
          value: codeStr,
          theme: 'vs-dark',
          language: mode[type],
          automaticLayout: true
        })
      //}
      // ctrl + s 刷新
      editorObj[type].onKeyDown(e => {
        if (e.keyCode === 49 && (e.metaKey || e.ctrlKey)) {
          this.runCode()
        }
      })
    },

同时界面用下面方式处理

<div class="view-border">
              <parser v-show="isParser" :form-conf="formData" @submit="submitForm" :key="key" ref="previewForm" />
            </div>


.view-border {
  margin-top: 10px;
  border-top: 5px dashed blue;
  border-right: 5px dashed blue;
  border-bottom: 5px dashed blue;
  border-left: 5px dashed blue;
}

3、效果图


http://www.niftyadmin.cn/n/5326524.html

相关文章

自动化控制面板-1Panel

一、1Panel自动化控制面板 官网地址 1Panel 可以实现&#xff1a; 快速建站、高效管理、安全可靠、一键备份、应用商店 快速建站&#xff1a;深度集成 Wordpress 和 Halo&#xff0c;域名绑定、SSL 证书配置等一键搞定&#xff1b;高效管理&#xff1a;通过 Web 端轻松管理 …

RPCMS跨站脚本漏洞(xss)

CNVD-ID: CNVD-2024-01190 漏洞描述: RPCMS是一个应用软件&#xff0c;一个网站CMS系统。 RPCMS v3.5.5版本存在跨站脚本漏洞&#xff0c;该漏洞源于组件/logs/dopost.html中对用户提供的数据缺乏有效过滤与转义&#xff0c;攻击者可利用该漏洞通过注入精心设计的有效载荷执行…

mac安装mysql和docker

官方下载页面&#xff1a;https://dev.mysql.com/downloads/mysql/ 傻瓜式安装 配置环境变量&#xff1a; open ~/.zshrc插入下面的配置&#xff1a; export PATH$PATH:/usr/local/mysql/bin export PATH$PATH:/usr/local/mysql/support-files$ source ~/.bash_profile $ …

云联接:揭开SD-WAN神秘面纱,颠覆你对网络的认知!

云联接&#xff08;Cloud Connect&#xff09;源于软件定义广域网&#xff08;SD-WAN&#xff09;。 软件定义广域网由于技术应用性强&#xff0c;近年来从一个由软件定义网络&#xff08;SDN&#xff09;部分衍生的分支概念发展为大规模普适的实践技术&#xff0c;已成为建立…

PTA 7-27 输出下半张九九乘法表

请输出下半张九九乘法表&#xff0c;即下三角的半张。 11 1 21 2 22 4 31 3 32 6 33 9 41 4 42 8 4312 4416 51 5 5210 5315 5420 5525 61 6 6212 6318 6424 6530 6636 71 7 7214 7321 7428 7535 7642 7749 81 8 8216 8324 8432 8540 8648 8756 8864 91 9 9218 9327 9…

分步骤保护中国香港VPS云免受黑客攻击

​  当前互联网大环境下&#xff0c;正确的配置对于确保网站服务器在线状态的完整性至关重要。 对于用户来说&#xff0c;要免受恶意威胁保护中国香港云VPS&#xff0c;不仅仅是初始设置&#xff0c;还需要仔细考虑安全措施。考虑到这一点&#xff0c;本文精心整理了这份分步…

C#学习教程一

VS2022 一:C#简介 基础: 全称:c sharp 面向对象 高级编程语言:(GC动态控制内存) C#、Java、Python... 低级编程语言:(经常与硬件打交道、内存、寄存器等) c/C++ 汇编... .net=dot net 过程: C/C++ 通过编译器转换成机器指令 C#通过编译器转换成IL中间语言…

【软件工程】基于领域建模的产品与技术方案设计(领域驱动设计DDD)

文章目录 1、领域建模2、产品方案、技术方案3、领域驱动设计DDD 1、领域建模 领域模型(domain model) 是对领域内的概念类或现实世界中对象的可视化表示。领域模型也成为概念模型、领域对象模型和分析对象模型。域模型是一种概念模型&#xff0c;也叫问题域模型。它表述的是某…