fix runid
This commit is contained in:
@@ -111,7 +111,7 @@
|
||||
<button id="refresh-identification-files" class="button secondary">刷新</button>
|
||||
</div>
|
||||
<div class="data-surface">
|
||||
<table><thead><tr><th>上传时间</th><th>文件名</th><th>类型</th><th>大小</th><th>状态</th><th>操作</th></tr></thead><tbody id="identification-file-list"></tbody></table>
|
||||
<table><thead><tr><th>上传时间</th><th>文件名</th><th>runId</th><th>类型</th><th>大小</th><th>状态</th><th>操作</th></tr></thead><tbody id="identification-file-list"></tbody></table>
|
||||
<p id="identification-file-empty" class="empty-row">选择公司和产线后刷新辨识数据</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -305,6 +305,7 @@ async function refreshIdentificationFiles() {
|
||||
state.identificationFiles = result.files || result.fileList || [];
|
||||
elements.identificationFileList.innerHTML = state.identificationFiles.map((file) => `
|
||||
<tr><td>${escapeHtml(file.uploadTime || "-")}</td><td>${escapeHtml(file.fileName)}</td>
|
||||
<td>${escapeHtml(file.runId || "-")}</td>
|
||||
<td>${file.mediaType === "json" ? "行程 JSON" : "辨识 CSV"}</td><td>${formatSize(file.size)}</td>
|
||||
<td>${file.status === "processed" ? "已处理" : "待处理"}</td>
|
||||
<td><button class="table-action" data-identification-preview="${escapeHtml(file.fileID)}">查看</button><button class="table-action" data-identification-download="${escapeHtml(file.fileID)}">下载</button><button class="table-action danger" data-identification-delete="${escapeHtml(file.fileID)}">删除</button></td></tr>
|
||||
@@ -457,8 +458,9 @@ function showImage(result) {
|
||||
plot.showImage.disabled = false;
|
||||
plot.openImage.disabled = false;
|
||||
if (mediaType === "csv" && result.reviewable) {
|
||||
state.review = { runId: result.fileName, deviceId: result.deviceId };
|
||||
elements.reviewTarget.textContent = result.fileName;
|
||||
const runId = result.runId || result.fileName;
|
||||
state.review = { runId, deviceId: result.deviceId };
|
||||
elements.reviewTarget.textContent = `${result.fileName} (runId: ${runId})`;
|
||||
elements.approveReview.disabled = false;
|
||||
elements.rejectReview.disabled = false;
|
||||
}
|
||||
@@ -954,6 +956,12 @@ elements.identificationFileList.addEventListener("click", async (event) => {
|
||||
if (result) {
|
||||
showImage(result);
|
||||
activateTab("plot-panel");
|
||||
if ((file.mediaType !== "json") && file.runId) {
|
||||
state.review = { runId: file.runId, deviceId: elements.deviceId.value };
|
||||
elements.reviewTarget.textContent = `${result.fileName} (runId: ${file.runId})`;
|
||||
elements.approveReview.disabled = false;
|
||||
elements.rejectReview.disabled = false;
|
||||
}
|
||||
}
|
||||
} else if (event.target.dataset.identificationDownload) {
|
||||
const result = await runBusy("正在保存辨识原始数据", () => window.reinloop.downloadIdentificationFile({
|
||||
@@ -1146,7 +1154,12 @@ function renderNotifications() {
|
||||
? "查看结果"
|
||||
: "查看绘图";
|
||||
const secondaryAction = notification.type === "identification_result_ready" ? "查看辨识数据" : "";
|
||||
return `<article class="panel-notification" data-notification-id="${escapeHtml(notification.notificationId)}" data-type="${escapeHtml(notification.type)}"><div class="notification-copy"><strong>${escapeHtml(notification.title)}</strong><span>${escapeHtml(notification.message)}</span></div><div class="notification-actions"><button class="button secondary" data-notification-action="primary" data-notification-id="${escapeHtml(notification.notificationId)}">${action}</button>${secondaryAction ? `<button class="button secondary" data-notification-action="secondary" data-notification-id="${escapeHtml(notification.notificationId)}">${secondaryAction}</button>` : ""}<button class="button icon" title="关闭提醒" aria-label="关闭提醒" data-notification-action="close" data-notification-id="${escapeHtml(notification.notificationId)}">x</button></div></article>`;
|
||||
const traces = [
|
||||
notification.runId ? `runId: ${notification.runId}` : "",
|
||||
notification.fileID ? `fileID: ${notification.fileID}` : "",
|
||||
notification.requestId ? `requestId: ${notification.requestId}` : ""
|
||||
].filter(Boolean).join(" | ");
|
||||
return `<article class="panel-notification" data-notification-id="${escapeHtml(notification.notificationId)}" data-type="${escapeHtml(notification.type)}"><div class="notification-copy"><strong>${escapeHtml(notification.title)}</strong><span>${escapeHtml(notification.message)}</span>${traces ? `<small class="notification-trace">${escapeHtml(traces)}</small>` : ""}</div><div class="notification-actions"><button class="button secondary" data-notification-action="primary" data-notification-id="${escapeHtml(notification.notificationId)}">${action}</button>${secondaryAction ? `<button class="button secondary" data-notification-action="secondary" data-notification-id="${escapeHtml(notification.notificationId)}">${secondaryAction}</button>` : ""}<button class="button icon" title="关闭提醒" aria-label="关闭提醒" data-notification-action="close" data-notification-id="${escapeHtml(notification.notificationId)}">x</button></div></article>`;
|
||||
}).join("");
|
||||
}
|
||||
|
||||
|
||||
@@ -197,6 +197,14 @@ input:focus, select:focus, textarea:focus { border-color: var(--green); box-shad
|
||||
.notification-copy { display: grid; gap: 3px; min-width: 0; }
|
||||
.notification-copy strong { font-size: 13px; }
|
||||
.notification-copy span { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
|
||||
.notification-copy .notification-trace {
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
color: var(--text-muted);
|
||||
font-size: 12px;
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
|
||||
word-break: break-all;
|
||||
}
|
||||
.notification-actions { display: flex; gap: 8px; }
|
||||
.editor-layout { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 18px; }
|
||||
.editor-column, .publish-aside { background: var(--surface); border: 1px solid var(--line); }
|
||||
|
||||
Reference in New Issue
Block a user