merge: expose HWPOD workspace interaction targets
Pipelines as Code CI / hwlab-nc01-v03-ci-poll-551ee2bdfd87bb153d1d09cd259bbc156d0c2f3c Success
Pipelines as Code CI / hwlab-nc01-v03-ci-poll-551ee2bdfd87bb153d1d09cd259bbc156d0c2f3c Success
This commit is contained in:
@@ -266,8 +266,8 @@ function formatTime(value: string | null): string { if (!value) return "-"; cons
|
||||
<button class="icon-command" type="button" title="返回设备资源" @click="emit('back')"><ChevronLeft :size="17" /></button>
|
||||
<strong class="workspace-title">{{ hwpodId }}</strong>
|
||||
<span class="toolbar-divider" />
|
||||
<button class="toolbar-command" type="button" :disabled="Boolean(busy)" @click="runBuild"><Hammer :size="15" />编译</button>
|
||||
<button class="toolbar-command" type="button" :disabled="Boolean(busy)" @click="downloadConfirmOpen = true"><Download :size="15" />下载</button>
|
||||
<button class="toolbar-command" type="button" data-testid="hwpod-workspace-build" :disabled="Boolean(busy)" @click="runBuild"><Hammer :size="15" />编译</button>
|
||||
<button class="toolbar-command" type="button" data-testid="hwpod-workspace-download" :disabled="Boolean(busy)" @click="downloadConfirmOpen = true"><Download :size="15" />下载</button>
|
||||
<label class="rebuild-option" title="使用 HWPOD spec 声明的 rebuildCommand"><input v-model="fullRebuild" type="checkbox" />全量重编译</label>
|
||||
<span class="toolbar-divider" />
|
||||
<label class="compact-field"><span>端口</span><input v-model="uartPort" aria-label="串口端口" /></label>
|
||||
@@ -283,7 +283,7 @@ function formatTime(value: string | null): string { if (!value) return "-"; cons
|
||||
<div class="workspace-main">
|
||||
<section class="file-pane" aria-label="工作区文件">
|
||||
<div class="pane-heading"><h2>工作区</h2><button class="plain-icon" type="button" title="刷新工作区" :disabled="rootLoading" @click="loadRoot"><RefreshCw :class="{ spin: rootLoading }" :size="14" /></button></div>
|
||||
<LoadingState v-if="rootLoading && !tree.length" class="pane-loading" label="正在加载工作区" />
|
||||
<LoadingState v-if="rootLoading && !tree.length" class="pane-loading" data-testid="hwpod-workspace-loading" label="正在加载工作区" />
|
||||
<BaseTree v-else v-model="tree" class="file-tree" :virtualization="true" :virtualization-prerender-count="30" :default-open="false" aria-label="HWPOD 工作区文件树" @click:node="selectNode">
|
||||
<template #default="{ node, stat, indentStyle }">
|
||||
<div class="tree-row" :class="{ selected: selectedPath === node.path }" :style="indentStyle">
|
||||
@@ -312,9 +312,9 @@ function formatTime(value: string | null): string { if (!value) return "-"; cons
|
||||
|
||||
<section class="output-dock" aria-label="HWPOD 输出">
|
||||
<nav class="output-tabs" aria-label="输出类型">
|
||||
<button type="button" :data-active="activeOutputTab === 'build'" @click="activeOutputTab = 'build'"><Hammer :size="13" />编译输出</button>
|
||||
<button type="button" :data-active="activeOutputTab === 'download'" @click="activeOutputTab = 'download'"><Download :size="13" />下载输出</button>
|
||||
<button type="button" :data-active="activeOutputTab === 'serial'" @click="activeOutputTab = 'serial'"><Terminal :size="13" />串口</button>
|
||||
<button type="button" data-testid="hwpod-output-build" :data-active="activeOutputTab === 'build'" @click="activeOutputTab = 'build'"><Hammer :size="13" />编译输出</button>
|
||||
<button type="button" data-testid="hwpod-output-download" :data-active="activeOutputTab === 'download'" @click="activeOutputTab = 'download'"><Download :size="13" />下载输出</button>
|
||||
<button type="button" data-testid="hwpod-output-serial" :data-active="activeOutputTab === 'serial'" @click="activeOutputTab = 'serial'"><Terminal :size="13" />串口</button>
|
||||
<span v-if="localError" class="dock-error" role="alert">{{ localError }}</span>
|
||||
</nav>
|
||||
<div class="output-body">
|
||||
|
||||
Reference in New Issue
Block a user