DDeiUtil
DDeiUtil
是DDei
在图形运行时的一个工具类,包含了常见的全局变量、配置和公共函数。 DDeiUtil
和DDeiEditorUtil
的区别在于,DDeiUtil
主要服务于在图形运行时,而非整个设计器的运行时。 DDeiUtil
中有一部分方法需和DDeiEditorUtil
共用,这些方法一般在DDeiEditorUtil
中定义。
属性
属性名 | 说明 | 数据类型 | 静态 | 默认值 | 备注 |
---|---|---|---|---|---|
USER_OS | 当前用户操作系统 | string | 是 | ||
DRAW_TEMP_CANVAS | 输出到临时canvas | boolean | 是 | true | |
offsetX | 临时坐标x | number | null | 是 | |
offsetY | 临时坐标y | number | null | 是 | |
screenX | 临时坐标x | number | null | 是 | |
screenY | 临时坐标y | number | null | 是 | |
recentlyChooseColors | 最新选择颜色 | object[] | null | 是 |
钩子方法
static getAttrValueByConfig
钩子函数,调用外部的配置属性读取函数,由外部调用者初始化
static getControlDefine
钩子函数,调用外部的配置属性读取函数,由外部调用者初始化
static getMenuConfig
钩子函数,获取菜单的函数,由外部调用者初始化
static getMenuControlId
钩子函数,获取菜单的控件ID,用于显示菜单,控制样式等
static showContextMenu
钩子函数,显示右键菜单等
static getSubControlJSON
钩子函数,返回控件的子控件定义,用于创建控件时自动创建子控件
static getLineInitJSON
钩子函数,返回线控件的定义
static getBusiData
钩子函数,获取业务数据
static getEditorId
钩子函数,获取编辑器ID
static invokeCallbackFunc
钩子函数,调用回调函数
static notifyChange
钩子函数,通知改变
static isBackActive
钩子函数,判断当前实例是否可以在后台激活,允许后台激活的实例,在当前实例为非ACTIVE_INSTANCE时,依然能够执行部分后台操作
方法
static getUniqueCode
获取设计器实例唯一ID
参数 无
返回值
类型 | 备注 |
---|---|
string | 唯一编码字符串 |
static rgb2hex
rgb字符串转16进制颜色字符串
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
color | string | rgb(r,g,b) |
返回值
类型 | 备注 |
---|---|
string | 颜色16进制字符串 |
static hex2rgb
16进制颜色字符串转rgb字符串
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
color | string | #00ff00 |
返回值
类型 | 备注 |
---|---|
string | 颜色rgb字符串 |
static hex2ddeicolor
16进制颜色字符串转DDeiColor
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
color | string | #00ff00 |
返回值
类型 | 备注 |
---|---|
DDeiColor | DDei颜色对象 |
DDeiColor.r | red |
DDeiColor.g | green |
DDeiColor.b | blue |
DDeiColor.a | alpha |
static getPixelRatio
获取屏幕像素比
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
ctx | Canvas.Context | canvas.getContext("2d") |
返回值
类型 | 备注 |
---|---|
number | 像素比 |
static getDPI
获取显示器DPI
参数 无
返回值
类型 | 备注 |
---|---|
object | dpi信息 |
static unitToPix
将任意单位的长度转换为像素
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
number | number | 值 | ||
unit | string | mm/cm/m/inch | 单位 | |
dpi | number | 屏幕dpi值 |
返回值
类型 | 备注 |
---|---|
nunber | 像素值 |
static mmToPix
毫米转换为像素
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
number | number | 值 | ||
dpi | number | 屏幕dpi值 |
返回值
类型 | 备注 |
---|---|
nunber | 像素值 |
static cmToPix
厘米转换为像素
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
number | number | 值 | ||
dpi | number | 屏幕dpi值 |
返回值
类型 | 备注 |
---|---|
nunber | 像素值 |
static mToPix
米转换为像素
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
number | number | 值 | ||
dpi | number | 屏幕dpi值 |
返回值
类型 | 备注 |
---|---|
nunber | 像素值 |
static inchToPix
英寸转换为像素
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
number | number | 值 | ||
dpi | number | 屏幕dpi值 |
返回值
类型 | 备注 |
---|---|
nunber | 像素值 |
static round
四舍五入保留小数位数
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
num1 | number | 数字 | ||
pos | number | 小数位数 |
返回值
类型 | 备注 |
---|---|
number | 运算结果 |
static preciseAdd
精准返回两个数的和
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
num1 | number | |||
num2 | number |
返回值
类型 | 备注 |
---|---|
number | 运算结果 |
static preciseSub
精准返回两个数的差
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
num1 | number | |||
num2 | number |
返回值
类型 | 备注 |
---|---|
number | 运算结果 |
static preciseTimes
精准返回两个数的积
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
num1 | number | |||
num2 | number |
返回值
类型 | 备注 |
---|---|
number | 运算结果 |
static preciseDiv
精准返回两个数的商
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
num1 | number | |||
num2 | number | 不能为0 |
返回值
类型 | 备注 |
---|---|
number | 运算结果 |
static formatNumber
格式化数字
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
num | number | 数字 | ||
decimal | number | 小数位数 | ||
split | string | 千分符 |
返回值
类型 | 备注 |
---|---|
string | 格式化后的数字 |
static formatDate
格式化时间
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
date | Date | 时间 | ||
fmt | string | 格式化字符串 |
返回值
类型 | 备注 |
---|---|
string | 格式化后的时间 |
static toBigMoney
将数字金额转换为人民币大写形式
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
money | number | 金额 |
返回值
类型 | 备注 |
---|---|
string | 人民币大写字符串 |
static isAccess
判断是否具有某种权限
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
operate | DDeiEnumOperateType | string | ||
control | DDeiAbstractShape | 控件,可以为空 | ||
propName | string | 属性,可以为空 | ||
mode | string | EDIT/VIEW | EDIT | 模式 |
ddInstance | DDei | DDei实例 |
返回值
类型 | 备注 |
---|---|
number | 运算结果 |
static pointsToZero
将多个点逆缩放,并平移到0点,返回新的点 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
points | Vector3[] | 要归0的点坐标集合 | ||
cpv | Vector3 | 0点坐标 | ||
rotate | number | 0 | 当前旋转角度 |
返回值
类型 | 备注 |
---|---|
Vector3[] | 新的点集合 |
static zeroToPoints
将中心点位于0的多个点,缩放、旋转、平移到新的中心点,返回新的点 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
points | Vector3[] | 要归0的点坐标集合 | ||
cpv | Vector3 | 0点坐标 | ||
rotate | number | 0 | 当前旋转角度 | |
scaleX | number | 1 | X轴缩放 | |
scaleY | number | 1 | Y轴缩放 |
返回值
类型 | 备注 |
---|---|
Vector3[] | 新的点集合 |
static getRotatedPoint
获取某个点旋转后的坐标 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
point | object | 点 | ||
point.x | object | 点x | ||
point.y | object | 点y | ||
rotate | number | 0 | 旋转角度 |
返回值
类型 | 备注 |
---|---|
object | 旋转后的点坐标 |
static getLineAngle
返回线相对于屏幕坐标系的角度 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
x1 | number | 端点1x | ||
y1 | number | 端点1y | ||
x2 | number | 端点2x | ||
y2 | number | 端点2y |
返回值
类型 | 备注 |
---|---|
number | 角度 |
static isLineCross
判断两条线是否相交 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
line1 | object | 线1 | ||
line1.x1 | number | 线1端点1x | ||
line1.y1 | number | 线1端点1y | ||
line1.x2 | number | 线1端点2x | ||
line1.y2 | number | 线1端点2y | ||
line2 | object | 线2 | ||
line2.x1 | number | 线2端点1x | ||
line2.y1 | number | 线2端点1y | ||
line2.x2 | number | 线2端点2x | ||
line2.y2 | number | 线2端点2y |
返回值
类型 | 备注 |
---|---|
boolean | 是否相交 |
static getLineCorssPoint
返回两条线段的交点 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
p1 | object | 线1端点1 | ||
p1.x | number | 线1端点1x | ||
p1.y | number | 线1端点1y | ||
p2 | object | 线1端点2 | ||
p2.x | number | 线1端点2x | ||
p2.y | number | 线1端点2y | ||
p3 | object | 线2端点1 | ||
p3.x | number | 线2端点1x | ||
p3.y | number | 线2端点1y | ||
p4 | object | 线2端点2 | ||
p4.x | number | 线2端点2x | ||
p2.y | number | 线2端点2y |
返回值
类型 | 备注 |
---|---|
object | 交点 |
static isRectCross
判断两个矩形是否相交
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
rect1 | object | 矩形1 | ||
rect1.x | number | 矩形1x | ||
rect1.y | number | 矩形1y | ||
rect1.width | number | 矩形1宽度 | ||
rect1.height | number | 矩形1高度 | ||
rect2 | object | 矩形2 | ||
rect2.x | number | 矩形2x | ||
rect2.y | number | 矩形2y | ||
rect2.width | number | 矩形2宽度 | ||
rect2.height | number | 矩形2高度 |
返回值
类型 | 备注 |
---|---|
boolean | 是否相交 |
static isPointInLine
判断点是否在线上
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
point | object | 判定点 | ||
point.x | number | 判定点x | ||
point.y | number | 判定点y | ||
p1 | object | 线端点1 | ||
p1.x | number | 线端点1x | ||
p1.y | number | 线端点1y | ||
p2 | object | 线端点2 | ||
p2.x | number | 线端点2x | ||
p2.y | number | 线端点2y |
返回值
类型 | 备注 |
---|---|
boolean | 是否在线上 |
static getPointDistance
求两点距离
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
x1 | number | 点1x | ||
y1 | number | 点1y | ||
x2 | number | 点2x | ||
y2 | number | 点2y |
返回值
类型 | 备注 |
---|---|
number | 距离 |
static cloneModel
克隆一个控件的关键属性,再创建一个新控件 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
control | DDeiAbstractShape | 图形控件 | ||
isShadowControl | boolean | false | 是否影子控件 |
返回值
类型 | 备注 |
---|---|
DDeiAbstractShape | 新控件 |
static getSortedModels
按从上到下从左到右的顺序排序控件 参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
controls | DDeiAbstractShape[] | 控件集合 |
返回值
类型 | 备注 |
---|---|
DDeiAbstractShape[] | 排序后控件 |
static canvasToImage
将canvas转为图片
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
canvas | Canvas |
返回值
类型 | 备注 |
---|---|
Promise | |
Promise.string | 图片base64 |
static cutStageToImages
将当前实例的stage转换为image
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
ddInstance | DDei | DDei实例 | ||
width | number | 目标宽度 | ||
height | number | 目标高度 |
返回值
类型 | 备注 |
---|---|
string | 图片base64 |
static async cutStageToImages
将当前实例的stage按一定大小比例剪切为多张图片
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
ddInstance | DDei | DDei实例 | ||
stage | DDeiStage | 舞台实例 | ||
width | number | 舞台宽度 | ||
height | number | 舞台高度 | ||
sx | number | 剪切区域开始x | ||
sy | number | 剪切区域开始y | ||
ex | number | 剪切区域结束x | ||
ey | number | 剪切区域结束y | ||
scaleSize | number | 2 | 缩放比率,越大越清晰,但是会增加体积 | |
bg | boolean | false | 输出背景 | |
mask | boolean | false | 输出水印 | |
autoScale | boolean | false | 强制缩放,让所有内容都输出到当前单张纸张大小 |
返回值
类型 | 备注 |
---|---|
string[] | 图片base64集合 |
static dataURLtoBlob
将dataUrl转换成Blob数据
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
dataurl | string | dataurl |
返回值
类型 | 备注 |
---|---|
Blob | 转换后的数据 |
static getPaperSize
根据配置获取纸张大小
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
stage | DDeiStage | 舞台实例 | ||
paperType | string | A1-A5、B1-B5等 | A4 | |
useRat | boolean | true | 按屏幕清晰度缩放 |
返回值
类型 | 备注 |
---|---|
object | 纸张大小 |
object.width | 纸张宽度 |
object.height | 纸张高度 |
static toRulerCoord
将页面坐标(像素)转换为标尺坐标
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
point | object | 转换点 | ||
point.x | number | 转换点x | ||
point.y | number | 转换点y | ||
stage | DDeiStage | 舞台实例 | ||
unit | string | cm、mm、inch、m | 单位 |
返回值
类型 | 备注 |
---|---|
object | 坐标 |
object.x | 坐标x |
object.y | 坐标y |
object.unit | 坐标单位 |
static toPageCoord
将标尺坐标转换为页面坐标(像素)
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
point | object | 转换点 | ||
point.x | number | 转换点x | ||
point.y | number | 转换点y | ||
stage | DDeiStage | 舞台实例 | ||
unit | string | cm、mm、inch、m | 单位 |
返回值
类型 | 备注 |
---|---|
object | 坐标 |
object.x | 坐标x |
object.y | 坐标y |
static getModelsDomAbsPosition
返回模型外接矩形在页面中的坐标
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
models | DDeiAbstractShape[] | 控件集合 |
返回值
类型 | 备注 |
---|---|
object | 坐标 |
object.left | 坐标x |
object.top | 坐标y |
object.cLeft | canvas坐标x |
object.cTop | canvas坐标y |
object.cWidth | canvas宽度 |
object.cHeight | canvas高度 |
static getDomAbsPosition
返回Dom元素在页面中的坐标
参数
参数名 | 类型 | 范围 | 默认值 | 备注 |
---|---|---|---|---|
element | Element | Dom元素 |
返回值
类型 | 备注 |
---|---|
object | 坐标 |
object.left | 坐标x |
object.top | 坐标y |
static isSafari
判断当前是否为safari浏览器
参数 无
返回值
类型 | 备注 |
---|---|
boolean | 是或否 |