所属产品: Mingcedar Studio DESIGNER
点击写变量 (Set Variable on Click) | Mingcedar Studio
点击时写入当前页的 JavaScript 变量,用于保存选择或联动显示;不写 PLC Tag。
<div class="manual-doc-article manual-doc-article-section"><h2 id="interaction-set-variable-on-click">交互: 点击写变量 (Set Variable on Click)</h2>
点击时写入当前页的 JavaScript 变量,用于保存选择或联动显示;不写 PLC Tag。
<div class="doc-card-list">
<article class="doc-card">
<h3 id="interaction-set-variable-on-click-item-1">功能说明</h3>
<p>Set Variable on Click 在点击时修改当前页变量,用于保存选择、切换视图或更新组件显示。使用前在 Page Script 声明变量。设备写入应使用 Write Tag 或 Write Tag Bit。</p>
</article>
<article class="doc-card doc-card-warn">
<h3 id="interaction-set-variable-on-click-item-2">字段配置</h3>
<p>将 Set Variable on Click 拖到目标组件,按下面字段配置并保存。示例各段分别填入 Page Script 和对应行为字段;Setup Script 留空。</p>
<ul>
<li>Setup Script:准备区。在这里读标签、定义中间变量、做计算,给 Value 用。可留空。</li>
<li>Variable:要写入的变量名,只填名字本身,不要加引号(例如填 pumpStart,不要填 "pumpStart")。</li>
<li>Value:要写入的值。可以是一个表达式,也可以是完整 JavaScript;如果写成多行脚本,必须用 return 把结果返回出来。</li>
<li>Condition:结果为 true 时执行赋值;为 false 时跳过。</li>
<li>(外观反馈,可选)启用时显示手型光标、启用时描边加粗、未启用时隐藏,用来给用户「可点 / 不可点」的视觉提示。</li>
</ul>
<div class="manual-code" data-code-language="javascript"><div class="manual-code-toolbar"><span>JavaScript</span><span class="manual-code-tools"><small>JavaScript</small><button type="button" data-copy-code data-copied="已复制" data-failed="请选中代码后复制" aria-label="复制代码: JavaScript">复制代码</button><span class="manual-code-status" role="status"></span></span></div><pre tabindex="0" class="docs-code-block shiki github-light" style="background-color:#fff;color:#24292e" tabindex="0"><code><span class="line"><span style="color:#6A737D">// Page Script</span></span>
<span class="line"><span style="color:#D73A49">var</span><span style="color:#24292E"> pumpStart </span><span style="color:#D73A49">=</span><span style="color:#005CC5"> false</span><span style="color:#24292E">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A737D">// Set Variable on Click → Variable</span></span>
<span class="line"><span style="color:#24292E">pumpStart</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A737D">// Value</span></span>
<span class="line"><span style="color:#D73A49">!</span><span style="color:#24292E">pumpStart</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A737D">// Condition</span></span>
<span class="line"><span style="color:#005CC5">true</span></span></code></pre></div>
</article>
<article class="doc-card">
<h3 id="interaction-set-variable-on-click-item-3">适用场景</h3>
<p>用于点击后更新页面变量并联动其他组件。</p>
<ul>
<li>页面状态切换:每次点击将 pumpStart 在 true 和 false 之间切换,状态灯引用同一变量。</li>
<li>做页面内的视图切换:点不同按钮写入 viewMode(如 1/2/3),让多个图层用可见性行为按 viewMode 显示或隐藏。</li>
<li>记一次用户选择:把当前选中的设备编号写进变量,供页面里的文本、跳转或脚本读取使用。</li>
</ul>
</article>
<article class="doc-card doc-card-warn">
<h3 id="interaction-set-variable-on-click-item-4">常见问题</h3>
<ul>
<li>不要和「写标签」混淆:这里写的是运行时变量,不会下发到 PLC;要写 PLC 用「写标签 / 写标签位」。</li>
<li>变量名不要加引号:Variable 框只填名字(pumpStart),加了引号或表达式会出错。</li>
<li>Value 写多行脚本时必须 return:只写一行表达式可以不写 return,但多行逻辑不 return 就拿不到结果。</li>
<li>需要其它组件联动时:写入后只会刷新联动行为状态,其它组件也需要绑定并读取同一个变量名(可通过 hqVisuDesigner.globals 读取该变量空间)。</li>
<li>点击未生效时检查 Condition 和变量名,并确认配置已保存、导出。</li>
</ul>
</article>
</div>
<div class="docs-note-grid manual-doc-image-grid">
<figure class="docs-note-card manual-doc-image-card" id="interaction-set-variable-on-click-image-1">
<img src="/WEB_img/HQPPT/VariableWriteBehaviorEditorForm.png" alt="点击写变量行为编辑器" loading="lazy" decoding="async" />
<figcaption>
<strong>图示 1: 点击写变量编辑器</strong>
<p>填变量名和要写入的值,点击时把值写进页面运行时变量,供其他行为联动。</p>
</figcaption>
</figure>
</div>
</div>