最近遇到一个需求,需要给工厂开发ANDON看板,简单来说就是上传工厂平面图,设置每个工位的位置,当发生ANDON时对应位置显示ANDON图标。
甲方的需求是通过拖放页面上的控件来定位每个工位的位置和范围。
于是就找到了今天的猪脚:vue-draggable-resizable
github地址:https://github.com/mauricius/vue-draggable-resizable文档挺详细的,
1、vue项目中安装:
npm i vue-draggable-resizable -S
2、全局注册组件main.js中写入:
import Vue from 'vue' import VueDraggableResizable from 'vue-draggable-resizable' import 'vue-draggable-resizable/dist/VueDraggableResizable.css' Vue.component('vue-draggable-resizable', VueDraggableResizable)
3、局部注册:在使用的组件里引用
import VueDraggableResizable from 'vue-draggable-resizable' import 'vue-draggable-resizable/dist/VueDraggableResizable.css'
具体的使用可以查看文档,这次重点记录对控件的改造。
由于控件可以添加多个,一般肯定会使用v-for生成多个拖拽控件,这就涉及到,当我点击控件对其属性进行编辑的时候需要知道当前点击的控件具体是哪一个。但是vue-draggable-resizable并没有传递唯一值或标识符的参数,没办法,只能对应改造下。
1.找到node_modules>vue-draggable-resizable>src>components文件夹下的vue和css文件和src下的utils下的js依赖拷贝出来,我是放到自己项目的src>components下
2.修改下引用的地址
import '@/components/vue-draggable-resizable/utils/vue-draggable-resizable.css'; import VueDraggableResizable from '@/components/vue-draggable-resizable/utils/vue-draggable-resizable';
3.给组件添加guid作为props属性
4.给对应的dragging和resizing添加guid参数
这样简单的改造就完成了,可以使用了