www.i4k.xyz
Open in
urlscan Pro
2606:4700:3032::ac43:a98f
Public Scan
URL:
https://www.i4k.xyz/article/wuyouguo55/103695576
Submission: On February 27 via manual from BE — Scanned from DE
Submission: On February 27 via manual from BE — Scanned from DE
Form analysis
1 forms found in the DOMPOST /searchArticle
<form id="searchForm" action="/searchArticle" method="post">
<div>
<input type="text" name="qc" style="width:200px;"> <input type="submit" value="搜索" style="color:black;">
</div>
</form>
Text Content
程序员信息网 程序员信息网,程序员的信息网 首页 / 联系我们 / 版权申明 / 隐私条款 万物可视之智能可视化管理平台_FUHUOJIA000000的博客-程序员信息网 技术标签: 物联网可视化 3D可视化 万物可视 pass平台 智能可视化 IT可视化运维管理平台 Tarsier是优锘科技推出的一款可视化+大数据的IT运维管理产品,针对当前业务环境和技术环境下企业IT运维面临的结构复杂、数据碎片、变化常态、机制板结等问题,Tarsier提供以可视化、场景化为核心理念的系列产品助力企业解决问题 ThingJS-人人都能用的3D平台 ThingJS是优锘科技开发的一套面向物联网应用的在线3D可视化应用开发及运营PaaS平台,以“ThingJS云视PaaS服务”形式面向广大物联网企业提供全生命周期在线3D可视化服务 2D/3D界面 ThingJS 是一个先进的 PaaS 开发平台,开发者可以方便、安全地基于云端的各种工具组件随时随地进行开发。 THINGJS 界面概述 为了便于开发者在ThingJS下进行界面开发,ThingJS 提供的界面体系结构目录如下: 上述ThingJS界面体系中,进行3D场景可视化的区域,我们定义为3D容器,如下图所示: 在3D“容器”内 提供了3D和2D的界面展示能力,如下图所示: 3D 界面 * Marker:可以将图标、Canvas绘制的图片,展现在3D场景中或绑定在3D物体上。 * WebView:可以将页面嵌入到3D场景中。 2D 界面 * 原生界面:用户可以使用js代码编写原生的界面,将dom元素插入到相应的节点中。 * 快捷界面库:内置各种组件模块,供用户进行拼接组装使用。 * UIAnchor:可以将普通的2D界面“挂接”到某个3D物体对象上,使之随物体移动。 在3D“容器”外 提供通栏组件(如上通栏、侧通栏)。如果用户想基于 ThingJS 做一套独立的应用系统,可使用通栏组件作为系统级别的菜单。 3D 界面 ThingJS 主要提供 `Marker` 物体和 `WebView` 物体以支持 3D 空间界面。 MARKER 物体 Marker 物体可以添加一个图片放置到你希望的位置,也可以将这个图片作为孩子添加到对象身上,随着对象一同移动。 例子 1: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"> app<span style="color:#273d56">.</span><span style="color:#4264fb">create</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> type<span style="color:#273d56">:</span> <span style="color:#ce2c69">"Marker"</span><span style="color:#273d56">,</span> offset<span style="color:#273d56">:</span> <span style="color:#273d56">[</span><span style="color:#7753eb">0</span><span style="color:#273d56">,</span> <span style="color:#7753eb">2</span><span style="color:#273d56">,</span> <span style="color:#7753eb">0</span><span style="color:#273d56">]</span><span style="color:#273d56">,</span> size<span style="color:#273d56">:</span> <span style="color:#273d56">[</span><span style="color:#7753eb">4</span><span style="color:#273d56">,</span> <span style="color:#7753eb">4</span><span style="color:#273d56">]</span><span style="color:#273d56">,</span> url<span style="color:#273d56">:</span> <span style="color:#ce2c69">"https://thingjs.com/static/images/warning1.png"</span><span style="color:#273d56">,</span> parent<span style="color:#273d56">:</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">query</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"car01"</span><span style="color:#273d56">)</span><span style="color:#273d56">[</span><span style="color:#7753eb">0</span><span style="color:#273d56">]</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 参数: * type : 通知系统创建 Marker 物体; * offset : 设置自身坐标系下偏移量为[0, 2, 0]; * size : 设置 Marker 物体大小,也可以添单独数字如 4,等同于[4,4],大小是以米计算的; * url : 图片的 url; * parent :指定 Marker 的父物体; 运行结果见下图。Marker 默认是受距离远近影响,呈现近大远小的 3D 效果,也会在 3D 空间中实现前后遮挡。 例子 2: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript">app<span style="color:#273d56">.</span><span style="color:#4264fb">create</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> type<span style="color:#273d56">:</span> <span style="color:#ce2c69">"Marker"</span><span style="color:#273d56">,</span> offset<span style="color:#273d56">:</span> <span style="color:#273d56">[</span><span style="color:#7753eb">0</span><span style="color:#273d56">,</span> <span style="color:#7753eb">8</span><span style="color:#273d56">,</span> <span style="color:#7753eb">0</span><span style="color:#273d56">]</span><span style="color:#273d56">,</span> size<span style="color:#273d56">:</span> <span style="color:#7753eb">2</span><span style="color:#273d56">,</span> keepSize<span style="color:#273d56">:</span> <span style="color:#7753eb">true</span><span style="color:#273d56">,</span> url<span style="color:#273d56">:</span> <span style="color:#ce2c69">"https://thingjs.com/static/images/reminder.png"</span><span style="color:#273d56">,</span> parent<span style="color:#273d56">:</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">query</span><span style="color:#273d56">(</span><span style="color:#ce2c69">".Building"</span><span style="color:#273d56">)</span><span style="color:#273d56">[</span><span style="color:#7753eb">1</span><span style="color:#273d56">]</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 参数: * keepSize: 控制是否受距离远近影响,呈现近大远小的 3D 效果。如果设置 true,表示保持大小,不随距离近大远小,此时 size 的单位是屏幕的像素点; * offset : 设置自身坐标系下偏移量为[0, 2, 0]; * size : 设置 Marker 物体大小,也可以添单独数字如 4,等同于[4,4],大小是以米计算的; * url : 图片的 url; * parent :指定 Marker 的父物体; 运行结果见下图: 我们还可以使用 h5 的 canvas 手动创建动态图。 例子 3: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#314ccd">function</span> <span style="color:#4264fb">createTextCanvas</span><span style="color:#273d56">(</span>text<span style="color:#273d56">,</span> canvas<span style="color:#273d56">)</span> <span style="color:#273d56">{</span> <span style="color:#314ccd">if</span> <span style="color:#273d56">(</span><span style="color:#273d56">!</span>canvas<span style="color:#273d56">)</span> <span style="color:#273d56">{</span> canvas <span style="color:#273d56">=</span> document<span style="color:#273d56">.</span><span style="color:#4264fb">createElement</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"canvas"</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> canvas<span style="color:#273d56">.</span>width <span style="color:#273d56">=</span> <span style="color:#7753eb">64</span><span style="color:#273d56">;</span> canvas<span style="color:#273d56">.</span>height <span style="color:#273d56">=</span> <span style="color:#7753eb">64</span><span style="color:#273d56">;</span> <span style="color:#273d56">}</span> <span style="color:#314ccd">const</span> ctx <span style="color:#273d56">=</span> canvas<span style="color:#273d56">.</span><span style="color:#4264fb">getContext</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"2d"</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span>fillStyle <span style="color:#273d56">=</span> <span style="color:#ce2c69">"rgb(32, 32, 256)"</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span><span style="color:#4264fb">beginPath</span><span style="color:#273d56">(</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span><span style="color:#4264fb">arc</span><span style="color:#273d56">(</span><span style="color:#7753eb">32</span><span style="color:#273d56">,</span> <span style="color:#7753eb">32</span><span style="color:#273d56">,</span> <span style="color:#7753eb">30</span><span style="color:#273d56">,</span> <span style="color:#7753eb">0</span><span style="color:#273d56">,</span> Math<span style="color:#273d56">.</span><span style="color:#314ccd">PI</span> <span style="color:#273d56">*</span> <span style="color:#7753eb">2</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span><span style="color:#4264fb">fill</span><span style="color:#273d56">(</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span>strokeStyle <span style="color:#273d56">=</span> <span style="color:#ce2c69">"rgb(255, 255, 255)"</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span>lineWidth <span style="color:#273d56">=</span> <span style="color:#7753eb">4</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span><span style="color:#4264fb">beginPath</span><span style="color:#273d56">(</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span><span style="color:#4264fb">arc</span><span style="color:#273d56">(</span><span style="color:#7753eb">32</span><span style="color:#273d56">,</span> <span style="color:#7753eb">32</span><span style="color:#273d56">,</span> <span style="color:#7753eb">30</span><span style="color:#273d56">,</span> <span style="color:#7753eb">0</span><span style="color:#273d56">,</span> Math<span style="color:#273d56">.</span><span style="color:#314ccd">PI</span> <span style="color:#273d56">*</span> <span style="color:#7753eb">2</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span><span style="color:#4264fb">stroke</span><span style="color:#273d56">(</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span>fillStyle <span style="color:#273d56">=</span> <span style="color:#ce2c69">"rgb(255, 255, 255)"</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span>font <span style="color:#273d56">=</span> <span style="color:#ce2c69">"32px sans-serif"</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span>textAlign <span style="color:#273d56">=</span> <span style="color:#ce2c69">"center"</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span>textBaseline <span style="color:#273d56">=</span> <span style="color:#ce2c69">"middle"</span><span style="color:#273d56">;</span> ctx<span style="color:#273d56">.</span><span style="color:#4264fb">fillText</span><span style="color:#273d56">(</span>text<span style="color:#273d56">,</span> <span style="color:#7753eb">32</span><span style="color:#273d56">,</span> <span style="color:#7753eb">32</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">return</span> canvas<span style="color:#273d56">;</span> <span style="color:#273d56">}</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">on</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'load'</span><span style="color:#273d56">,</span> <span style="color:#314ccd">function</span> <span style="color:#273d56">(</span>ev<span style="color:#273d56">)</span> <span style="color:#273d56">{</span> <span style="color:#314ccd">var</span> marker <span style="color:#273d56">=</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">create</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> type<span style="color:#273d56">:</span> <span style="color:#ce2c69">"Marker"</span><span style="color:#273d56">,</span> offset<span style="color:#273d56">:</span> <span style="color:#273d56">[</span><span style="color:#7753eb">0</span><span style="color:#273d56">,</span> <span style="color:#7753eb">2</span><span style="color:#273d56">,</span> <span style="color:#7753eb">0</span><span style="color:#273d56">]</span><span style="color:#273d56">,</span> size<span style="color:#273d56">:</span> <span style="color:#7753eb">3</span><span style="color:#273d56">,</span> canvas<span style="color:#273d56">:</span> <span style="color:#4264fb">createTextCanvas</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'100'</span><span style="color:#273d56">)</span><span style="color:#273d56">,</span> parent<span style="color:#273d56">:</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">query</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'car02'</span><span style="color:#273d56">)</span><span style="color:#273d56">[</span><span style="color:#7753eb">0</span><span style="color:#273d56">]</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">on</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'click'</span><span style="color:#273d56">,</span> <span style="color:#314ccd">function</span> <span style="color:#273d56">(</span>ev<span style="color:#273d56">)</span> <span style="color:#273d56">{</span> <span style="color:#314ccd">var</span> txt <span style="color:#273d56">=</span> Math<span style="color:#273d56">.</span><span style="color:#4264fb">floor</span><span style="color:#273d56">(</span>Math<span style="color:#273d56">.</span><span style="color:#4264fb">random</span><span style="color:#273d56">(</span><span style="color:#273d56">)</span> <span style="color:#273d56">*</span> <span style="color:#7753eb">100</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> ev<span style="color:#273d56">.</span>object<span style="color:#273d56">.</span>canvas <span style="color:#273d56">=</span> <span style="color:#4264fb">createTextCanvas</span><span style="color:#273d56">(</span>txt<span style="color:#273d56">,</span> ev<span style="color:#273d56">.</span>object<span style="color:#273d56">.</span>canvas<span style="color:#273d56">)</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span></code> </span></span> 参数: * canvas: 接收 canvas 作为贴图显示 运行结果见下图,在 Marker 上点击时,会改变标记上的数字: 查看示例 WEBVIEW 物体 我们可以使用 WebView 物体,将其他网站或者页面的内容嵌到 3D 中。 例子 4: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"> <span style="color:#314ccd">var</span> webView01 <span style="color:#273d56">=</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">create</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> type<span style="color:#273d56">:</span> <span style="color:#ce2c69">'WebView'</span><span style="color:#273d56">,</span> url<span style="color:#273d56">:</span> <span style="color:#ce2c69">'https://www.thingjs.com'</span><span style="color:#273d56">,</span> position<span style="color:#273d56">:</span> <span style="color:#273d56">[</span><span style="color:#7753eb">10</span><span style="color:#273d56">,</span> <span style="color:#7753eb">13</span><span style="color:#273d56">,</span> <span style="color:#273d56">-</span><span style="color:#7753eb">5</span><span style="color:#273d56">]</span><span style="color:#273d56">,</span> width<span style="color:#273d56">:</span> <span style="color:#7753eb">1920</span> <span style="color:#273d56">*</span> <span style="color:#7753eb">0.01</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 3D 中实际宽度 单位 米</span> height<span style="color:#273d56">:</span> <span style="color:#7753eb">1080</span> <span style="color:#273d56">*</span> <span style="color:#7753eb">0.01</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 3D 中实际高度 单位 米</span> domWidth<span style="color:#273d56">:</span> <span style="color:#7753eb">1920</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 页面宽度 单位 px</span> domHeight<span style="color:#273d56">:</span> <span style="color:#7753eb">1080</span><span style="color:#53708e">// 页面高度 单位 px</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 查看示例 2D HTML 界面 JS 编写原生界面 <span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#314ccd">var</span> template <span style="color:#273d56">=</span> <span style="color:#ce2c69">`<div style='position:absolute;left:20px;top:20px;padding: 8px;width:100px;text-align: center;background: rgba(0,0,0,0.5);'> <p id="p1" style='color:white'>Hello World!</p> <button style='margin:4px;padding:4px' onclick='changeLevel()'>Into Level</button></div>`</span><span style="color:#273d56">;</span><span style="color:#53708e">// 插入到 ThingJS 内置的 2D 界面 div 中$('#div2d').append($(template));</span></code></span> 查看示例 ThingJS 为了让大家快速编写界面,我们提供一个“快捷界面库”,可快速创建界面。 UIANCHOR 还有一个神奇的功能,即使是 2D html 界面,我们照样可以把它连接到 3D 物体上,跟随 3D 物体移动,我们使用 `UIAnchor` 物体来实现这个功能。 示例如下: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#314ccd">var</span> uiAnchor <span style="color:#273d56">=</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">create</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> type<span style="color:#273d56">:</span> <span style="color:#ce2c69">"UIAnchor"</span><span style="color:#273d56">,</span> parent<span style="color:#273d56">:</span> app<span style="color:#273d56">.</span><span style="color:#4264fb">query</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"car02"</span><span style="color:#273d56">)</span><span style="color:#273d56">[</span><span style="color:#7753eb">0</span><span style="color:#273d56">]</span><span style="color:#273d56">,</span> element<span style="color:#273d56">:</span> document<span style="color:#273d56">.</span><span style="color:#4264fb">getElementById</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"XXXX"</span><span style="color:#273d56">)</span><span style="color:#273d56">,</span> localPosition<span style="color:#273d56">:</span> <span style="color:#273d56">[</span><span style="color:#7753eb">0</span><span style="color:#273d56">,</span> <span style="color:#7753eb">2</span><span style="color:#273d56">,</span> <span style="color:#7753eb">0</span><span style="color:#273d56">]</span><span style="color:#273d56">,</span> pivot<span style="color:#273d56">:</span> <span style="color:#273d56">[</span><span style="color:#7753eb">0.5</span><span style="color:#273d56">,</span> <span style="color:#7753eb">1</span><span style="color:#273d56">]</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 参数: * element :要绑定的页面的 element 对象 * pivot :指定页面的哪个点放到 localPosition 位置上,0.5 相当于 50% 查看示例 删除UIAnchor方法为: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript">uiAnchor<span style="color:#273d56">.</span><span style="color:#4264fb">destroy</span><span style="color:#273d56">(</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 注意事项: 删除后,其对应的 panel 也会被删除 显示和隐藏UIAnchor方法为: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript">uiAnchor<span style="color:#273d56">.</span>visible <span style="color:#273d56">=</span> <span style="color:#7753eb">true</span> <span style="color:#273d56">/</span> <span style="color:#7753eb">false</span><span style="color:#273d56">;</span></code> </span></span> 通过 js 编写的界面: 可以利用 UIAnchor 连接到 3D 物体上。 查看示例 也可以通过快捷界面库,创建 Panel 以 UIAnchor 的方式连接到物体上。 查看示例 快捷界面库 THING.widget 是一个支持动态数据绑定的轻量级界面库。 可通过界面库中的 Panel 组件创建一个面板,并可向该面板中添加文本、数字、单选框、复选框等其他组件。 效果如下: 创建面板 <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#314ccd">var</span> panel <span style="color:#273d56">=</span> <span style="color:#314ccd">new</span> <span style="color:#4264fb">THING<span style="color:#273d56">.</span>widget<span style="color:#273d56">.</span>Panel</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> <span style="color:#53708e">// 设置面板样式</span> template<span style="color:#273d56">:</span> <span style="color:#ce2c69">'default'</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 角标样式</span> cornerType<span style="color:#273d56">:</span> <span style="color:#ce2c69">"none"</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 设置面板宽度</span> width<span style="color:#273d56">:</span> <span style="color:#ce2c69">"300px"</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 是否有标题</span> hasTitle<span style="color:#273d56">:</span> <span style="color:#7753eb">true</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 设置标题名称</span> titleText<span style="color:#273d56">:</span> <span style="color:#ce2c69">"我是标题"</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 面板是否允许有关闭按钮</span> closeIcon<span style="color:#273d56">:</span> <span style="color:#7753eb">true</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 面板是否支持拖拽功能</span> dragable<span style="color:#273d56">:</span> <span style="color:#7753eb">true</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 面板是否支持收起功能</span> retractable<span style="color:#273d56">:</span> <span style="color:#7753eb">true</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 设置透明度</span> opacity<span style="color:#273d56">:</span> <span style="color:#7753eb">0.9</span><span style="color:#273d56">,</span> <span style="color:#53708e">// 设置层级</span> zIndex<span style="color:#273d56">:</span> <span style="color:#7753eb">99</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> * width: 如果写百分比字符串则表示相对宽度(相对于3D容器的宽度) * template:目前,模板样式提供两个样式 default 和 default2,如下图: * cornerType: cornerType 是指角标样式,依次是:没有角标 none ,没有线的角标 noline ,折线角标 polyline ;依次见下图: 注意事项: 角标样式都不区分大小写 如果 panel 面板设置了关闭按钮 则点击关闭按钮时 会将面板设置为隐藏,如需再次打开该面板 则调用 panel.visible = true; 显示面板即可。 查看示例 面板属性及方法介绍 <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#53708e">// 获取面板标签</span> panel<span style="color:#273d56">.</span>domElement<span style="color:#273d56">;</span> <span style="color:#53708e">// 修改面板标题</span> panel<span style="color:#273d56">.</span>titleText<span style="color:#273d56">=</span><span style="color:#ce2c69">'修改标题'</span><span style="color:#273d56">;</span> <span style="color:#53708e">// 设置/获取面板相关属性</span> panel<span style="color:#273d56">.</span>visible <span style="color:#273d56">=</span> <span style="color:#7753eb">true</span> <span style="color:#273d56">/</span> <span style="color:#7753eb">false</span><span style="color:#273d56">;</span> panel<span style="color:#273d56">.</span>position <span style="color:#273d56">=</span> <span style="color:#273d56">[</span><span style="color:#7753eb">10</span><span style="color:#273d56">,</span> <span style="color:#7753eb">10</span><span style="color:#273d56">]</span><span style="color:#273d56">;</span><span style="color:#53708e">//设置panel面板的位置</span> panel<span style="color:#273d56">.</span>zIndex <span style="color:#273d56">=</span> <span style="color:#7753eb">9</span><span style="color:#273d56">;</span> panel<span style="color:#273d56">.</span>opacity <span style="color:#273d56">=</span> <span style="color:#7753eb">0.5</span><span style="color:#273d56">;</span> <span style="color:#53708e">// 删除面板</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">destroy</span><span style="color:#273d56">(</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 面板事件 <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#53708e">// 常用事件类型均支持</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">on</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"click"</span><span style="color:#273d56">,</span> callback<span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#53708e">// 'close'事件为面板关闭时触发</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">on</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"close"</span><span style="color:#273d56">,</span> callback<span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 面板中的数据 可通过各组件实现双向绑定 <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#314ccd">var</span> dataObj <span style="color:#273d56">=</span> <span style="color:#273d56">{</span> pressure<span style="color:#273d56">:</span> <span style="color:#ce2c69">"0.14MPa"</span><span style="color:#273d56">,</span> temperature<span style="color:#273d56">:</span> <span style="color:#ce2c69">"21°C"</span><span style="color:#273d56">,</span> checkbox<span style="color:#273d56">:</span> <span style="color:#273d56">{</span> 设备<span style="color:#7753eb">1</span><span style="color:#273d56">:</span> <span style="color:#7753eb">false</span><span style="color:#273d56">,</span> 设备<span style="color:#7753eb">2</span><span style="color:#273d56">:</span> <span style="color:#7753eb">false</span><span style="color:#273d56">,</span> 设备<span style="color:#7753eb">3</span><span style="color:#273d56">:</span> <span style="color:#7753eb">true</span><span style="color:#273d56">,</span> 设备<span style="color:#7753eb">4</span><span style="color:#273d56">:</span> <span style="color:#7753eb">true</span> <span style="color:#273d56">}</span><span style="color:#273d56">,</span> radio<span style="color:#273d56">:</span> <span style="color:#ce2c69">"摄像头01"</span><span style="color:#273d56">,</span> open1<span style="color:#273d56">:</span> <span style="color:#7753eb">true</span><span style="color:#273d56">,</span> height<span style="color:#273d56">:</span> <span style="color:#7753eb">10</span><span style="color:#273d56">,</span> maxSize<span style="color:#273d56">:</span> <span style="color:#7753eb">1.0</span><span style="color:#273d56">,</span> iframe<span style="color:#273d56">:</span> <span style="color:#ce2c69">"https://www.3dmomoda.com"</span><span style="color:#273d56">,</span> progress<span style="color:#273d56">:</span> <span style="color:#7753eb">1</span><span style="color:#273d56">,</span> img<span style="color:#273d56">:</span> <span style="color:#ce2c69">"https://www.thingjs.com/guide/image/new/logo2x.png"</span><span style="color:#273d56">,</span> button<span style="color:#273d56">:</span> <span style="color:#7753eb">false</span> <span style="color:#273d56">}</span><span style="color:#273d56">;</span></code> </span></span> 逐条添加组件 <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#314ccd">var</span> press <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addString</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'pressure'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'水压'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">isChangeValue</span><span style="color:#273d56">(</span><span style="color:#7753eb">true</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> height <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addNumber</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'height'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'高度'</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> maxSize <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addNumberSlider</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'maxSize'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">step</span><span style="color:#273d56">(</span><span style="color:#7753eb">0.25</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">min</span><span style="color:#273d56">(</span><span style="color:#7753eb">1</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">max</span><span style="color:#273d56">(</span><span style="color:#7753eb">10</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> open1 <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addBoolean</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'open1'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'开关01'</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> radio <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addRadio</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'radio'</span><span style="color:#273d56">,</span> <span style="color:#273d56">[</span><span style="color:#ce2c69">'摄像头01'</span><span style="color:#273d56">,</span> <span style="color:#ce2c69">'摄像头02'</span><span style="color:#273d56">]</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> check <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addCheckbox</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'checkbox'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> <span style="color:#ce2c69">"设备2"</span><span style="color:#273d56">:</span> <span style="color:#ce2c69">"设备2(rename)"</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> iframe <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addIframe</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'iframe'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'视屏'</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> img <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addIframe</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'img'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'图片'</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> button <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addImageBoolean</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'button'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'仓库编号'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">url</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'https://www.thingjs.com/static/images/example/icon.png'</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 界面库可设置 `Caption` 的字体颜色:如下例所示: <span style="color:#1f3349"><span style="color:#273d56 !important"><code class="language-javascript"><span style="color:#314ccd">var</span> press <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addString</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'pressure'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"水压"</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">isChangeValue</span><span style="color:#273d56">(</span><span style="color:#7753eb">true</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> water <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addString</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'temperature'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"水温"</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">isChangeValue</span><span style="color:#273d56">(</span><span style="color:#7753eb">true</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> check <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addCheckbox</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'checkbox'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#273d56">{</span> <span style="color:#ce2c69">"设备2"</span><span style="color:#273d56">:</span> <span style="color:#ce2c69">"设备2(rename)"</span> <span style="color:#273d56">}</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> open1 <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addBoolean</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'open1'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"开关01"</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> height <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addNumber</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'height'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"高度"</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> maxSize <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addNumberSlider</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'maxSize'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">"maxSize"</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">step</span><span style="color:#273d56">(</span><span style="color:#7753eb">0.25</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">min</span><span style="color:#273d56">(</span><span style="color:#7753eb">1</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">max</span><span style="color:#273d56">(</span><span style="color:#7753eb">10</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span> <span style="color:#314ccd">var</span> iframe <span style="color:#273d56">=</span> panel<span style="color:#273d56">.</span><span style="color:#4264fb">addIframe</span><span style="color:#273d56">(</span>dataObj<span style="color:#273d56">,</span> <span style="color:#ce2c69">'iframe'</span><span style="color:#273d56">)</span><span style="color:#273d56">.</span><span style="color:#4264fb">caption</span><span style="color:#273d56">(</span><span style="color:#ce2c69">'视屏'</span><span style="color:#273d56">)</span><span style="color:#273d56">;</span></code> </span></span> 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/wuyouguo55/article/details/103695576 原作者删帖 不实内容删帖 广告或垃圾文章投诉 -------------------------------------------------------------------------------- 智能推荐 SESSION中的COOKIES设置及使用_JIEKAILE的博客-程序员信息网_SESSION设置COOKIE python requests模块session的使用建议及整个会话中的所有cookie的方法2、测试代码2.1 服务端下面是用flask做的一个服务端,用来设置cookie以及打印请求时的请求头# -*- coding: utf-8 -*-from flask import Flask, make_response, requestapp = Flask(__name__)... 台式电脑计算机为什么没有EF盘,为何我的电脑不显示D,E,F盘?_WEIXIN_39605706的博客-程序员信息网 中毒了由于计算机在系统运行时会自动搜索盘符目录下的Autorun.inf配置文件,并根据其内的文件自动运行加载其内设置好的命令。其实Autorun.inf就是一个文本形式的系统配置文件,用户可以用文本编辑软件进行编辑(注:该文件只能位于驱动器的根目录下时,才能实现启动加载),该文件包含了需要自动运行的命令,如需要运行的程序文件、改变的驱动器图标、可选快捷菜单内容等等。病情描述当用户在选择:工具-文... HIVE安装及与HBASE的整合_阳光奶爸的博客-程序员信息网 介绍Hive的工作原理、配置及与HBase的整合。 LINUX安装DISCONF_TOMMER911-程序员信息网_LINUX安装DISCONF linux安装disconf JAVA生成MIB文件_MIB浏览器设计(附源码) | 学步园_SHEEPY SHEEPP的博客-程序员信息网 Mib是snmp采集器的基础。Mib是网络oid的描述载体,主要把设备oid的值、描述和参数放入mib。是用来做主动轮询和被动收集收集trap信息翻译的主要基础数据。但是mib是一直特别的协议,通过特别的树形结构存放数据。建立一套良好的mib控制代码,整个网管系统的基础。如果用一个灵活可以扩展的mib库才是一个网管系统可持续发展的生命力。mibble-parser-2.9.2.jar是一套开源的m... 深度学习和其他机器学习方法相比有哪些关键的不同点,它为何能在许多领域取得成功?_萌兔兔MMQ!!-程序员信息网 是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域的应用取得了巨大成功。现有的模型属于神经网络。神经网络的起源可追溯到20世纪40年代,曾经在八 …是近十年来人工智能领域取得的重要突破。它在语音识别、自然语言处理、计算机视觉、图像与视频分析、多媒体等诸多领域的应用取得了巨大成功。现有的模型属于神经网络。神经网络的起源可追溯到20世纪40年代,曾经在八九十年代流行。神经网络试图通过模拟大脑认知的机理解决各种机器学习问题。1986年,鲁梅尔哈特(Ru 随便推点 ECLIPSE笔记-怎么让MAVEN子项目在父项目的依赖中显示为JAR包_不积跬步,无以至千里-程序员信息网 之前有个问题困扰了我很久,就是Maven父项目引用了几个子项目打包成的jar包,然而在Maven Dependencies中却总是显示成一个项目,而不是jar包。这导致了我在debug父项目时,当debug到子项目的代码时总是不跳入jar中编译好的class文件,而是直接跳转到工作空间中的子项目的java文件。由于我修改过子项目的代码,但是还未重新打包,于是debug的时候进入的是java... WEB前端和后端开发面临的挑战_IT~子民的博客-程序员信息网 WEB前端和后端开发面临的挑战 要成为一名高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果。而在开发中难免会遇到一些困难,从前端到后端,近日,在问答网站知乎上,有人抛出了“Web前端开发面临的挑战主要有哪些?”和“后端开发主要的挑战有哪些?”。 一、Web前端开发所面临的挑战 盛大Web工程师 曹刘阳:前端语言的胶水性需求太强 ... IMPALA常见错误小结_WEIXIN_34393428的博客-程序员信息网 线上使用impala做一部分的nginx日志实时计算,简单记录下在使用过程中遇到的一些小问题:部署常见问题:1.mysql jar错误Caused by: org.datanucleus.exceptions.NucleusException: Attempt to invoke the "DBCP" plugin to create a Co... 【OPENCV】OPENCV(PYTHON) 教程-轮廓(2)轮廓特征求取_ZJ360202的专栏-程序员信息网_轮廓特征提取 目标查找轮廓的不同特征,例如面积,周长,重心,边界框等,这些特征在未来的图像识别中,会大量的用到。矩的概念图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(图像描述量)来描述整个图像,这组数据越简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰。图像识别发展几十年,不断有新的特征提出,而图像不变矩就是其中一个。矩是概率与 手游图片素材提取_一款可以提取安卓游戏模型的软件,支持贴图、声音导出丨带测试..._WEIXIN_39845113的博客-程序员信息网 小编之前给大家介绍过一款电脑端的游戏模型提取软件Ninja Ripper今天呢,在带来一款针对安卓游戏的模型提取在讲解软件之前,我们分析一下一个3D安卓游戏的资源组成情况,一般大型游戏主要是由APK文件以及OBB文件组成,我们的思路就是资源包含到OBB文件内我们可以先查看一下OBB文件内部的情况,这里就需要用到打开OBB文件的软件7zip下图就是文件内部打开的状况,从assets文件后缀可以了解到... 我的JAVA学习历程(一HTML5篇)_LOGIC_007的博客-程序员信息网 html5这部分还是十分简单的!一些简单的标签总结:一, html5文档结构 yh6 标题一 二, meta标签的常见用法a) 设置中 - PapayAds Advertising - 推荐文章 * JavaEE PO VO BO DTO POJO DAO 整理总结_weixin_34399060的博客-程序员信息网 * python爬虫: 抓取任意歌手的歌词,简直不要太骚_Johnny Liao的博客-程序员信息网_python爬取歌词 * 如何实现操作操作日志记录_t_jindao的博客-程序员信息网_操作记录 * python建模与仿真控制系统_控制系统的建模与仿真_weixin_39648469的博客-程序员信息网 * 举步维艰——如何调试显示器点亮前的故障_weixin_30664051的博客-程序员信息网 * 央行广西面试结构化计算机岗,各省人行面试有什么区别_11号温耀威 无的博客-程序员信息网 * drf序列化器之反序列化的数据验证_晚安_玛卡巴卡_的博客-程序员信息网 * Tomcat6启动报错java.lang.IllegalArgumentException:_~-程序员信息网 - PapayAds Advertising - 热门文章 * Spring Boot 解决跨域问题的 3 种方案!_Java基基的博客-程序员信息网 * python3.6.5安装教程-Centos7 安装Python3.6.5步骤_weixin_37988176的博客-程序员信息网 * Android学习——Mac Os X下载和编译android 4.2.2 源码_Janrone's Blog-程序员信息网 * Hbase学习02_anghiking20140716的博客-程序员信息网 * Android简单实用的交互动画库_无二的博客-程序员信息网 * 在idea里使用vue 一个tab为4个空格_做一个有知识的流氓-程序员信息网_idea vue 空格 * jquery使用serialize()出现中文乱码怎么办_yy743的博客-程序员信息网 * Axure RP里单选按钮组_weixin_34192993的博客-程序员信息网 相关标签 * 物联网可视化 * 3D可视化 * 万物可视 * pass平台 * 智能可视化 Copyright © 2018-2022 - All Rights Reserved - 网站内容人工审核和清理中!