#
Junjie
1 天以前 de13ff96cb19aa0fd2e63ea2d7188734215a2107
src/main/webapp/components/DevpCard.js
@@ -1,3 +1,5 @@
var stationTracePageVersion = "20260319_station_trace_layout_v2";
Vue.component("devp-card", {
  template: `
    <div class="mc-root">
@@ -32,6 +34,7 @@
          <div class="mc-action-row">
            <button type="button" class="mc-btn" @click="controlCommand">下发</button>
            <button type="button" class="mc-btn mc-btn-soft" @click="resetCommand">复位</button>
            <button type="button" class="mc-btn mc-btn-ghost" @click="openStationTracePage">运行轨迹</button>
            <button v-if="showFakeTraceEntry" type="button" class="mc-btn mc-btn-ghost" @click="openFakeTracePage">仿真轨迹</button>
          </div>
        </div>
@@ -252,6 +255,9 @@
      }
      window.open(baseUrl + "/views/watch/fakeTrace.html", "_blank");
    },
    openStationTracePage: function () {
      window.open(baseUrl + "/views/watch/stationTrace.html?v=" + stationTracePageVersion, "_blank");
    },
    buildDetailEntries: function (item) {
      return [
        { label: "编号", value: this.orDash(item.stationId) },
@@ -269,11 +275,27 @@
        { label: "条码", value: this.orDash(item.barcode), code: true, type: "barcode" },
        { label: "重量", value: this.orDash(item.weight) },
        { label: "任务可写区", value: this.orDash(item.taskWriteIdx) },
        { label: "缓存区数据", value: this.formatTaskBufferItems(item.taskBufferItems), code: true },
        { label: "故障代码", value: this.orDash(item.error) },
        { label: "故障信息", value: this.orDash(item.errorMsg) },
        { label: "系统告警", value: this.orDash(item.systemWarning) },
        { label: "扩展数据", value: this.orDash(item.extend) }
      ];
    },
    formatTaskBufferItems: function (items) {
      if (!Array.isArray(items) || items.length === 0) {
        return "--";
      }
      return items.map(function (item) {
        var slotIdx = item && item.slotIdx != null ? item.slotIdx : "?";
        var taskNo = item && item.taskNo != null ? item.taskNo : 0;
        var targetStaNo = item && item.targetStaNo != null ? item.targetStaNo : 0;
        if (!taskNo && !targetStaNo) {
          return slotIdx + ": 空";
        }
        return slotIdx + ": " + taskNo + " -> " + targetStaNo;
      }).join(" | ");
    },
    postControl: function (url, payload) {
      $.ajax({
        url: baseUrl + url,