UNPKG

@thingjs/xplugin-cli

Version:

UINO ThingJS-X 零代码平台插件二次开发脚手架,用于生成插件模板开发代码

450 lines (365 loc) 22.4 kB
<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} --> <!-- code_chunk_output --> - [*Namespace* 解构(THINGX.DigitalTwin)](#namespace-解构thingxdigitaltwin) - [*Method* THINGX.DigitalTwin.load](#method--thingxdigitaltwinload) - [*Method* THINGX.DigitalTwin.show](#method--thingxdigitaltwinshow) - [*Method* THINGX.DigitalTwin.hide](#method--thingxdigitaltwinhide) - [*Method* THINGX.DigitalTwin.hasShowPurpose](#method--thingxdigitaltwinhasshowpurpose) - [*Method* THINGX.DigitalTwin.showWithSmoothAnimation](#method--thingxdigitaltwinshowwithsmoothanimation) - [*Method* THINGX.DigitalTwin.hideWithSmoothAnimation](#method--thingxdigitaltwinhidewithsmoothanimation) - [*Method* THINGX.DigitalTwin.addColor](#method--thingxdigitaltwinaddcolor) - [*Method* THINGX.DigitalTwin.removeColor](#method--thingxdigitaltwinremovecolor) - [*Method* THINGX.DigitalTwin.addOpacity](#method--thingxdigitaltwinaddopacity) - [*Method* THINGX.DigitalTwin.removeOpacity](#method--thingxdigitaltwinremoveopacity) - [*Method* THINGX.DigitalTwin.showPanel](#method--thingxdigitaltwinshowpanel) - [*Method* THINGX.DigitalTwin.hidePanel](#method--thingxdigitaltwinhidepanel) - [*Method* THINGX.DigitalTwin.activateTabOnPanel](#method--thingxdigitaltwinactivatetabonpanel) - [*Method* THINGX.DigitalTwin.getActivatedTabOnPanel](#method--thingxdigitaltwingetactivatedtabonpanel) - [*Method* THINGX.DigitalTwin.getActivatedTabIndexOnPanel](#method--thingxdigitaltwingetactivatedtabindexonpanel) - [*Method* THINGX.DigitalTwin.getDistanceToCamera](#method--thingxdigitaltwingetdistancetocamera) <!-- /code_chunk_output --> ### *<a><font color="grey">Namespace</font></a>* 解构(THINGX.DigitalTwin) > THINGX.DigitalTwin:namespace ```javascript //应用系统针对孪生体操作提供的相关能力 //主要提供针对孪生体及其附属能力的api功能 //THING.BaseObject (相关属性和方法可 参考thingjs api 物体基类章节: https://docs.thingjs.com/cn/apidocs/THING.BaseObject.html) // THINGX.DigitalTwin 解构 THINGX.DigitalTwin:namespace Members // - 无 Methods - load(DigitalTwin [, isShow]):Promise.<Array.<THING.BaseObject>> //加载孪生体资源 - show(DigitalTwin [, purpose]):Array.<THING.BaseObject> //显示孪生体 - hide(DigitalTwin [, purpose]):Array.<THING.BaseObject> //隐藏孪生体 - hasShowPurpose(DigitalTwin [, purpose]):boolean //判断孪生体是否带有某个显示目的 - showWithSmoothAnimation(DigitalTwin,[,Config] [, purpose]):Promise.<Array.<THING.BaseObject>>//显示孪生体(带动画效果) - hideWithSmoothAnimation(DigitalTwin,[,Config] [, purpose]):Promise.<Array.<THING.BaseObject>>//隐藏孪生体(带动画效果) - addColor(DigitalTwin, purpose, color [, priority] [, traverse] [, intensity]):Array.<THING.BaseObject>//添加颜色到孪生体色栈中 - removeColor(DigitalTwin, purpose, traverse)Array.<THING.BaseObject> //从孪生体色栈中移除指定颜色 - addOpacity(DigitalTwin, purpose, opacity [, priority] [, traverse] [, ignoreTag]):Array.<THING.BaseObject>//添加透明度到孪生体透明栈中 - removeOpacity(DigitalTwin, purpose [, traverse] [, ignoreTag]):Array.<THING.BaseObject> //从孪生体透明栈中移除指定目的的透明度 - showPanel(DigitalTwin):void //显示孪生体面板 (*) 不支持孪生体集合 & it's not support thingjs query syntax expression for DigitalTwin - hidePanel(DigitalTwin):void //隐藏孪生体面板 (*) 不支持孪生体集合 & it's not support thingjs query syntax expression for DigitalTwin - activateTabOnPanel(name):void //激活当前孪生体面板上(指定)的tab页签 - getActivatedTabOnPanel():string //获取当前在孪生体面板上激活的tab页签名称 - getActivatedTabIndexOnPanel():number //获取当前在孪生体面板上激活的tab页签索引 - getDistanceToCamera(digitalTwin, isRecursive):number //计算孪生体到摄像机的距离 (米) Type Definitions - DigitalTwin 孪生体对象(THING.BaseObject) - (相关属性和方法可 参考thingjs api 物体基类章节: https://docs.thingjs.com/cn/apidocs/THING.BaseObject.html) - Config 孪生体显示隐藏动画效果配置(效果配置) - lerpType:string 插值类型(相关属性 参考thingjs api 插值类型章节: https://docs.thingjs.com/cn/apidocs/THING.html#.LerpType) - time:number 动画时间(毫秒/ms) default value: 500ms ``` ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.load > 加载孪生体资源, THINGX.DigitalTwin.load(DigitalTwin [, isShow]):Promise.<Array.<THING.BaseObject>> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |isShow|boolean|| true | 加载后是否立即显示 | * 类型: `Promise.<Array.<THING.BaseObject>>` * 示例 ```javascript //加载孪生体资源 //示例. 加载园区中的停车位, 并立即显示 const twins = THING.App.current.query('[twinType=停车位]') THINGX.DigitalTwin.load(twins, true); ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.show > 显示孪生体, THINGX.DigitalTwin.show(DigitalTwin [, purpose]):Array.<THING.BaseObject> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |purpose|string|| default | 显示目的 | * 类型: `Array.<THING.BaseObject>` * 示例 ```javascript //显示孪生体 //示例1. 显示所有建筑孪生体 const buildings = THINGX.DigitalTwin.show(".Building"); console.warn("显示的建筑孪生体为: %s", ...buildings); //print result: 显示的建筑孪生体为: 建筑1孪生体,建筑2孪生体... //示例2. 园区漫游显示所有建筑孪生体 const buildings = THINGX.DigitalTwin.show(".Building", "园区漫游"); console.warn("显示的建筑孪生体为: %s", ...buildings); //print result: 显示的建筑孪生体为: 建筑1孪生体,建筑2孪生体... ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.hide > 隐藏孪生体, THINGX.DigitalTwin.hide(DigitalTwin [, purpose]):Array.<THING.BaseObject> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |purpose|string|| default | 显示目的 | * 类型: `Array.<THING.BaseObject>` * 示例 ```javascript //隐藏孪生体 //示例1. 由于在 THINGX.DigitalTwin.show() 示例中我们将建筑以 园区漫游 的目的隐藏, 此时示例1的api是不生效的 const buildings = THINGX.DigitalTwin.hide(".Building"); console.warn("隐藏的建筑孪生体为: %s", ...buildings); //print result: 隐藏的建筑孪生体为: 建筑1孪生体,建筑2孪生体... //示例2. 由于示例2的目的和显示建筑时目的相同, 则此时api生效, 园区漫游隐藏所有建筑孪生体, const buildings = THINGX.DigitalTwin.hide(".Building", "园区漫游"); console.warn("隐藏的建筑孪生体为: %s", ...buildings); //print result: 隐藏的建筑孪生体为: 建筑1孪生体,建筑2孪生体... ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.hasShowPurpose > 判断孪生体是否带有某个显示目的, THINGX.DigitalTwin.hasShowPurpose(DigitalTwin [, purpose]):boolean * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked>support thingjs query syntax expression for DigitalTwin | |purpose|string|| default | 显示目的 | * 类型: `boolean` * 示例 ```javascript //如果存在多个孪生体 则所有孪生体都包含显示目的才返回true //示例1. 判断建筑是否有 园区漫游 显示目的 const bool = THINGX.DigitalTwin.hasShowPurpose(".Building", "园区漫游") console.warn("建筑是否有园区漫游显示目的: %s", bool); //print result: 建筑是否有园区漫游显示目的: true ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.showWithSmoothAnimation > 显示孪生体(带动画效果), THINGX.DigitalTwin.showWithSmoothAnimation(DigitalTwin,[,Config] [, purpose]):Promise.<Array.<THING.BaseObject>> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |config|THINGX.DigitalTwin.Config|| { lerpType: 'Quartic.In', time: 500 } | 孪生体显示隐藏动画效果配置(效果配置) : Type Definitions| |purpose|string|| default | 显示目的 | * 类型:`Promise.<Array.<THING.BaseObject>>` * 示例 ```javascript //显示孪生体(带动画效果) //示例. 在0.5s内由隐藏匀速过渡到显示孪生体 THINGX.DigitalTwin.showWithSmoothAnimation('.Building', { lerpType: 'Linear', time: 500 }) ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.hideWithSmoothAnimation > 隐藏孪生体(带动画效果), THINGX.DigitalTwin.hideWithSmoothAnimation(DigitalTwin,[,Config] [, purpose]):Promise.<Array.<THING.BaseObject>> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |config|THINGX.DigitalTwin.Config||{ lerpType: 'Quartic.Out', time: 500 } | 孪生体显示隐藏动画效果配置(效果配置) : Type Definitions| |purpose|string|| default | 显示目的 | * 类型:`Promise.<Array.<THING.BaseObject>>` * 示例 ```javascript //隐藏孪生体(带动画效果) //示例. 在0.5s内由显示匀速过渡到隐藏孪生体 THINGX.DigitalTwin.hideWithSmoothAnimation('.Building', { lerpType: 'Linear', time: 500 }) ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.addColor > 添加颜色到孪生体色栈中, THINGX.DigitalTwin.addColor(DigitalTwin, purpose, color [, priority] [, traverse] [, intensity]):Array.<THING.BaseObject> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |purpose|string|| default | 变色的目的(用于取消该次变色) | |color|string|| default | 十六进制颜色字符串 如'#ff0000' | |priority|number|| 0 | 颜色设置的优先级,数值越大,权重越大,同权重下后设置的会覆盖前设置的 | |traverse|boolean|| false | 是否遍历子元素 | |intensity|number|| 0.7 | 颜色强度, [0,1] 数值越高变色越明显 | * 类型: `Array.<THING.BaseObject>` * 示例 ```javascript //添加颜色到孪生体色栈中 //示例1. 给楼层添加红色 THINGX.DigitalTwin.addColor('.Floor', '红色', '#ff0000'); //示例2. 接示例1 给楼层添加黄色 由于数值越大权重越大,此时楼层是黄色 THINGX.DigitalTwin.addColor('.Floor', '黄色', '#ffff00', 1); //示例3. 给楼层及楼层子元素添加绿色 THINGX.DigitalTwin.addColor('.Floor', '绿色', '#00ff00', 2, true); ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.removeColor > 从孪生体色栈中移除指定颜色, THINGX.DigitalTwin.removeColor(DigitalTwin, purpose, traverse)Array.<THING.BaseObject> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |purpose|string|| default | 变色的目的 | |traverse|boolean|| false | 是否遍历子元素 | * 类型: `Array.<THING.BaseObject>` * 示例 ```javascript //从孪生体色栈中移除指定颜色 //示例1. 给楼层移除红色 由于上例中楼层黄色优先级高,移除后楼层仍然是黄色 THINGX.DigitalTwin.removeColor('.Floor', '红色'); //示例2. 接示例1 给楼层及楼层子元素移除绿色 此时楼层颜色为黄色 THINGX.DigitalTwin.removeColor('.Floor', '绿色', true); //示例2. 接示例2 给楼层移除黄色 此时楼层颜色恢复默认 THINGX.DigitalTwin.removeColor('.Floor', '黄色'); ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.addOpacity > 添加透明度到孪生体透明栈中, THINGX.DigitalTwin.addOpacity(DigitalTwin, purpose, opacity [, priority] [, traverse] [, ignoreTag]):Array.<THING.BaseObject> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |purpose|string|| - | 透明的目的(用于取消该次透明) | |opacity|number|| - | 透明度 [0,1]数值越大,透明度越高 | |priority|number|| 0 | 透明设置的优先级,[0,1] 数值越大,权重越大 | |traverse|boolean|| false | 是否遍历子元素 | |ignoreTag|string|| [inheritOpacity] | 忽略的标签 | * 类型:`Array.<THING.BaseObject>` * 示例 ```javascript //添加透明度到孪生体透明栈中 //示例1. 将楼层及楼层子元素透明 THINGX.DigitalTwin.addOpacity('.Floor', '透明', 0, 0, true); //示例2. 将楼层半透明, 楼层子元素仍是透明状态 THINGX.DigitalTwin.addOpacity('.Floor', '半透明', 0.5, 1); //示例3. 将楼层不透明 接示例2 由于权重没有示例2大, 此时楼层还是半透明 THINGX.DigitalTwin.addOpacity('.Floor', '不透明', 1, 0); ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.removeOpacity > 从孪生体透明栈中移除指定目的的透明度, THINGX.DigitalTwin.removeOpacity(DigitalTwin, purpose [, traverse] [, ignoreTag]):Array.<THING.BaseObject> * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject或string|| - | 孪生体对象/ThingJS查询语法</br> <input type="checkbox" disabled checked> support thingjs query syntax expression for DigitalTwin | |purpose|string|| - | 透明的目的 | |traverse|boolean|| false | 是否遍历子元素 | |ignoreTag|string|| [inheritOpacity] | 忽略的标签 | * 类型:`Array.<THING.BaseObject>` * 示例 ```javascript //从孪生体透明栈中移除指定目的的透明度 //示例1. 移除楼层及楼层子元素透明状态, 此时楼层是半透明状态 THINGX.DigitalTwin.removeOpacity('.Floor', '透明', 0, 0, true); //示例2. 移除楼层半透明状态 THINGX.DigitalTwin.removeOpacity('.Floor', '半透明', 0.5, 1); //示例3. 移除楼层不透明, 此时楼层透明度恢复默认 THINGX.DigitalTwin.removeOpacity('.Floor', '不透明', 1, 0); ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.showPanel > 显示孪生体面板, THINGX.DigitalTwin.showPanel(DigitalTwin):void * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject~~或string~~|| - | 孪生体对象</br> <input type="checkbox" disabled > support thingjs query syntax expression for DigitalTwin | * 类型:`void` * 示例 ```javascript //显示孪生体面板 (孪生体在应用系统中被选中只有单选,无同时选择多个孪生体能力,故在孪生体面板显示时,仅支持单孪生体操作) //参数 it's not support for DigitalTwin set //参数 it's not support thingjs query syntax expression for DigitalTwin //示例. 显示烟感的孪生体面板 const twin = THING.App.current.query('#烟感')[0]; if (twin) { THINGX.DigitalTwin.showPanel(twin); } ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.hidePanel > 隐藏孪生体面板, THINGX.DigitalTwin.hidePanel(DigitalTwin):void * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject~~或string~~|| - | 孪生体对象</br> <input type="checkbox" disabled > support thingjs query syntax expression for DigitalTwin | * 类型:`void` * 示例 ```javascript //隐藏孪生体面板 (孪生体在应用系统中被选中只有单选,无同时选择多个孪生体能力,故在孪生体面板显示时,仅支持单孪生体操作) //参数 it's not support for DigitalTwin set //参数 it's not support thingjs query syntax expression for DigitalTwin //示例. 隐藏烟感的孪生体面板 const twin = THING.App.current.query('#烟感').objects[0]; if (twin) { THINGX.DigitalTwin.hidePanel(twin); } ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.activateTabOnPanel > 激活当前孪生体面板上(指定)的tab页签(只在弹窗模式下生效, 且面板为显示状态), THINGX.DigitalTwin.activateTabOnPanel(name):void * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |name|string|| - | 孪生体面板页签定义名称 | * 类型:void * 示例 ```javascript //激活当前孪生体面板上(指定)的tab页签 //示例1. 激活 `基础信息` 页签 THINGX.DigitalTwin.activateTabOnPanel("基础信息"); //示例2. 激活 `告警信息` 页签, 此时由基础信息切换到告警信息页签 THINGX.DigitalTwin.activateTabOnPanel("告警信息"); ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.getActivatedTabOnPanel > 获取当前在孪生体面板上激活的tab页签名称(只在弹窗模式下生效) , THINGX.DigitalTwin.getActivatedTabOnPanel():string * 类型:`string` * 示例 ```javascript //获取当前在孪生体面板上激活的tab页签名称 //示例. 获取当前在孪生体面板上激活的tab页签名称 const name = THINGX.DigitalTwin.getActivatedTabOnPanel(); console.warn("当前在孪生体面板上激活的tab页签名称为: %s", name); //print result:当前在孪生体面板上激活的tab页签名称为: 告警信息 ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.getActivatedTabIndexOnPanel > 获取当前在孪生体面板上激活的tab页签索引 , THINGX.DigitalTwin.getActivatedTabIndexOnPanel():number * 类型:`number` * 示例 ```javascript //获取当前在孪生体面板上激活的tab页签索引 //示例. 获取当前在孪生体面板上激活的tab页签索引 const index = THINGX.DigitalTwin.getActivatedTabIndexOnPanel(); console.warn("当前在孪生体面板上激活的tab页签索引为: %s", index); //print result:当前在孪生体面板上激活的tab页签索引为: 0 ``` *** ### *<a><font color="grey">Method</font></a>* THINGX.DigitalTwin.getDistanceToCamera > 计算孪生体到摄像机的距离, getDistanceToCamera(digitalTwin, isRecursive):number * 参数 |||||| |-|-|-|-|-| |名称|类型|必填|默认值|描述| |DigitalTwin|THING.BaseObject~~或string~~|| - | 孪生体对象</br> <input type="checkbox" disabled > support thingjs query syntax expression for DigitalTwin | |isRecursive|boolean|| false | 是否遍历子集 | * 类型:`number` * 示例 ```javascript //计算孪生体到摄像机的距离 (米) //示例. 计算选中的孪生体到摄像机的距离 const dtwin = THING.App.current.selection.objects[0]; if (dtwin) { const distance = THINGX.DigitalTwin.getDistanceToCamera(dtwin); console.warn("选中的孪生体到摄像机的距离为: %s", distance); //print result:选中的孪生体到摄像机的距离为: 3.404914526788503 } ``` *** !> 孪生体操作相关 支持 **质量保证:** `张迪` **审核校正:** `唐鑫` `张光光` **问题反馈:** `张明雷(zhangminglei@uino.com)`