|
2 週間 前 | |
---|---|---|
.. | ||
bin | 2 週間 前 | |
lib | 2 週間 前 | |
node_modules | 2 週間 前 | |
scripts | 2 週間 前 | |
types | 2 週間 前 | |
LICENSE | 2 週間 前 | |
README.CH.md | 2 週間 前 | |
README.md | 2 週間 前 | |
package.json | 2 週間 前 |
在使用vue3/vue2中,用于页面展示的缩放操作
简体中文 | English
时隔半年,重启mater的新版开发, 大家有兴趣的可以加我微信: ka132300 拉入群, 大家一起讨论 效果图如下
插件应用范围: 适合作为低代码平台操作页面缩放工具,比如做图工具如, 大屏可视化, 做图工具图怪兽等,类似ps的缩放效果. 使用vue-demi, 一套代码,打包两个环境的插件, 同时支持vue2和vue3中进行使用(在npm安装插件时,会自动判断载入对应vue版本的代码)
应用案例: avue大屏可视化工具
由于项目升级成vite, 发现原来的插件vue-sketch-ruler,用到vue3中会报错, 这边我重新用vite打包了一份, 打包后的插件和原来功一样, 且支持在vue3和vite中使用
这边对原代码进行了改进优化,功能目前和之前vue3-sketch-ruler一样,还没时间优化,主要改进分为以下几点
升级过程简单写了一篇掘金文章, 同行或感兴趣的可以留言交流
该插件如果在vue2/vue3中使用, 需要配套安装vue-demi插件, 本插件没有打包vue-demi, 另外vue-demi只有18.2 kB,非常小,仅做了vue版本切换作用, 这里1X版本和vue-sketch-ruler 一样功能, 后面没有什么bug的话,不再维护, 1x基本不动原有功能,需要下载源码的, 或者提pr的, 请下载1x分支, 新功能将会在未来2X中增加,老工程迁移过来的建议使用1x版本, 新项目建议使用2X,做到0配置(2x难产中, 写了好几个版本觉得不够满意, 不过这个一定会出来的, 雏形已经传到master分支)
支持全局导入和模块导入
vue3
npm install --save vue3-sketch-ruler vue-demi
or
yarn add vue3-sketch-ruler vue-demi -S
vue2
npm install --save vue3-sketch-ruler vue-demi @vue/composition-api
or
yarn add vue3-sketch-ruler vue-demi @vue/composition-api -S
将打包后的dist包拷贝,用import导入,支持下面两种引用方式
import { SketchRule } from 'vue3-sketch-ruler'
import 'vue3-sketch-ruler/lib/style.css'
components: { SketchRule }
也可以是这样子
import SketchRule from 'vue3-sketch-ruler'
import 'vue3-sketch-ruler/lib/style.css'
components: SketchRule
这是个开源业余做的功能,有兴趣加强该插件的小伙伴欢迎加入,也欢迎大家提pr或者issue
<template>
<SketchRule
:thick="thick"
:scale="scale"
:width="582"
:height="482"
:startX="startX"
:startY="startY"
:shadow="shadow"
:lines="lines"
>
</template>
<script>
import Vue from 'vue';
import {SketchRule} from "vue-sketch-ruler";
import 'vue3-sketch-ruler/lib/style.css'
const rectWidth = 160;
const rectHeight = 200;
export default {
data() {
return {
scale: 2, //658813476562495, //1,
startX: 0,
startY: 0,
lines: {
h: [100, 200],
v: [100, 200]
},
thick: 20,
isShowRuler: true,
isShowReferLine: true
}
},
components: {
SketchRule
}
});
</script>
参考一个完整的例子,点击这里
vue3 api 的例子,点击这里
Nuxt3 中使用例子 点击这里
属性名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
scale | 初始化标尺的缩放 | Number | 2 |
thick | 标尺的厚度 | Number | 16 |
width | 放置标尺窗口的宽度 | Number | - |
height | 放置标尺窗口的高度 | Number | - |
startX | x轴标尺开始的坐标数值 | Number | 0 |
startY | y轴标尺开始的坐标数值 | Number | 0 |
shadow | 阴影的参数 | Shadow | 0 |
lines | 初始化水平标尺上的参考线 | object | {h:[],v:[]} |
palette | 标尺的样式配置参数 | Palette | 如下 |
事件名称 | 描述 | 回调参数 |
---|---|---|
onCornerClick | 左上角点击事件 |
vue标尺组件 vue-sketch-ruler
一个来自墨刀的react标尺组件 mb-sketch-ruler .