首页 > 其他分享 >改造vue-webtopo-svgeditor2.1版本,兼容vue2

改造vue-webtopo-svgeditor2.1版本,兼容vue2

时间:2022-10-07 09:11:25浏览次数:86  
标签:vue vue2 svgeditor2.1 改造 兼容 版本 webtopo template

原控件在 https://github.com/yaolunmao/vue-webtopo-svgeditor  是园子里的朋友 咬轮猫  开发的

在网上发现大神开发这套组态,很符合项目要求,10.1期间准备融入项目,结果发现他是基于VUE3.0开发的,我们项目是vue2.0,他在git上也提到兼容2.0的方式,连猜带蒙跟着做,我从1.0版本开始看代码,移植很顺利,2.0~2.1就有些困难了,这里写下过程,有需要的朋友可以参考,下面针对 2.1 版本说说,最后的发布版本我不准备兼容了,因为我们也要升级到vue3.0了^ ^

1 ,安装 vue-fragment ,安装后针对public\InterfaceReturn.json  文件做改造 ,多节点的component  前后加 <fragment> </fragment>

2 ,删除public\InterfaceReturn.json文件里  v-chart 控件,我是因为版本总装不对 vue-echart,放弃了。用其他方式绘制了

3,最关键的一步,在 SvgComponents.vue 文件中,改造 created 函数如下

  created() {
    this.svgInfoData.forEach(f => {
      const componentInfo = {
        template: f.template,
        props: f.props
      }
      importComponents[f.type] = componentInfo
      console.log(f.type, componentInfo)
      Vue.component(f.type, {
        props: ['prop_data'],
        template: f.template
      })
    })
  },

基本就可以跑起来了。

预览展示代码有个 key的问题,改造如下

      <svg
        version="1.1"
        xmlns="http://www.w3.org/2000/svg"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        style="background-color:#000000"
        viewBox="0 0 1920 1080"
        width="100%"
        height="100%"
      >
        <defs />
        <g
          v-for="item in svgLists"
          :id="item.id"
          :key="item.id"
          :title="item.title"
          :transform="'translate('+(item.svgPositionX)+','+(item.svgPositionY)+')' +'rotate('+item.angle+')' +'scale('+item.size+')'"
        >
          <SvgComponents
            :component_prop="item"
            :svgInfoData="svgInfoData"
          />
        </g>
      </svg>

 

目前使用方式是用vue-webtopo-svgeditor2.1绘制好,自己手工再编几个组件,然后在自己改造后的vue2.0里面展示。

 

标签:vue,vue2,svgeditor2.1,改造,兼容,版本,webtopo,template
From: https://www.cnblogs.com/myzerg/p/16759068.html

相关文章

  • Vue3使用可重复使用的Mixins
     这里有两个子页面是重复功能的,一个是点击事件,一个是鼠标移入事件点击事件  鼠标移入事件  效果      现在使用mixins新键一个文件夹minxs,再......
  • Vue脚手架创建
    1、安装脚手架的包npminstall-g@vue/cli,通过vue--version检查版本检查版本2、切换到创建项目的目录,然后使用命令创建项目vuecreatexxx3、项目配置 eslint:语法检......
  • [转]VUE 之 Webpack 打包构建
    首先,下载jquery npmijquery-S然后,下载webpack npmiwebpackwebpack-cli-D接下来,创建文件:webpack.config.jsmodule.exports={mode:'developmen......
  • [踩坑记录] Vue3 customRef 传入对象没有进入set方法
    问题描述学习Vue3Ref相关API的时候,遇到了customRef这个API,它可以让我们自定义ref的更新的过程但是使用customRef有一个问题就是,如果你传入的是初始值,那么一切......
  • Vue 里,多级菜单要如何设计才显得专业?
    老生常谈了!虽然我们是Java猿,但是写起来前端代码也不含糊!今天我想来和大家聊聊这个前端的动态菜单,要如何设计才显得专业!还是以我们的TienChin项目为例,大家一起来看看。先......
  • [转]VUE3 学习之 npm
    使用命令安装expressmysql2nodemon三个插件[email protected] 安装nodemon插件时,要带上-g命令可以参考:https://www.cnblogs.com/z5337/p/16484943.......
  • vue3 访问原生事件
    两种方法$event变量内联箭头函数官网链接:https://cn.vuejs.org/guide/essentials/event-handling.html#accessing-event-argument-in-inline-handlers如下图所示:......
  • Vue3 Vite3 多环境配置 - 基于 vite 创建 vue3 全家桶项目(续篇)
    在项目或产品的迭代过程中,通常会有多套环境,常见的有:dev:开发环境sit:集成测试环境uat:用户接收测试环境pre:预生产环境prod:生产环境环境之间配置可能存在差异,如接口地......
  • Vue3集成Tailwind CSS
    TailwindCSS是一个由js编写的CSS 框架 他是基于postCss去解析的对于PostCSS的插件使用,我们再使用的过程中一般都需要如下步骤:PostCSS配置文件postcss.config.js,新......
  • vue3中动态组件
    动态切换组件代码如下(示例):  1.markRaw标记一个普通对象,使得它不可以被转换成响应式对象。简单来说,就是组件不需要响应式,这样可以提高性能。2.keep-alive组件在非活......