feat(资源管理): 精简资源管理按钮布局
build.yaml / build (push) Successful in 54s

This commit is contained in:
xiaoqidun committed 2026-10-13 15:23:17 +08:00
1 parent 523f66983e
commit 0139433e25
3 files changed
+12 -6

No files matched your search

+4 -3
View File
@@ -365,21 +365,22 @@
</div> </div>
</div> </div>
<div class="form-row"><label for="resourceReference">引用</label><div class="resource-target"><select id="resourceReference" aria-label="引用位置"></select><button id="resourceLocate" class="button" type="button">定位</button></div></div> <div class="form-row"><label for="resourceReference">引用</label><div class="resource-target"><select id="resourceReference" aria-label="引用位置"></select><button id="resourceLocate" class="button" type="button">定位</button></div></div>
<div class="resource-actions"> <div id="resourceActions" class="resource-actions">
<button id="resourceAdd" class="button" type="button" title="添加资源" aria-label="添加资源">添加</button> <button id="resourceAdd" class="button" type="button" title="添加资源" aria-label="添加资源">添加</button>
<button id="resourcePreview" class="button" type="button">预览</button> <button id="resourcePreview" class="button" type="button">预览</button>
<button id="resourceExport" class="button" type="button">导出</button> <button id="resourceExport" class="button" type="button">导出</button>
<button id="resourceRename" class="button" type="button" hidden>改名</button> <button id="resourceRename" class="button" type="button" hidden>改名</button>
<button id="resourceReplace" class="button" type="button">替换</button> <button id="resourceReplace" class="button" type="button">替换</button>
<button id="resourceDelete" class="button" type="button">删除</button> <button id="resourceDelete" class="button" type="button">删除</button>
<button id="resourceClose" class="button" type="button">关闭</button>
</div> </div>
<div id="resourceBinding" class="resource-binding" hidden> <div id="resourceBinding" class="resource-binding" hidden>
<div class="form-row"><label for="resourcePage">页码</label><select id="resourcePage"></select></div> <div class="form-row"><label for="resourcePage">页码</label><select id="resourcePage"></select></div>
<div class="form-row"><label for="resourceObject">图元</label><div class="resource-target"><select id="resourceObject"></select><button id="resourcePick" class="button" type="button">选取</button></div></div> <div class="form-row"><label for="resourceObject">图元</label><div class="resource-target"><select id="resourceObject"></select><button id="resourcePick" class="button" type="button">选取</button></div></div>
<div class="form-actions"><button id="resourceUnbind" class="button" type="button">解绑</button><button id="resourceBind" class="button" type="button">绑定</button></div> <div id="resourceBindingActions" class="form-actions"><button id="resourceUnbind" class="button" type="button">解绑</button><button id="resourceBind" class="button" type="button">绑定</button></div>
</div> </div>
<div id="resourceViewer" class="resource-viewer" hidden></div> <div id="resourceViewer" class="resource-viewer" hidden></div>
<div class="form-actions"><div id="resourceStatus" class="form-status" role="status"></div><button id="resourceClose" class="button" type="button">关闭</button></div> <div id="resourceStatus" class="form-status" role="status"></div>
<input id="resourceFile" type="file" hidden> <input id="resourceFile" type="file" hidden>
</form> </form>
</dialog> </dialog>
+5 -2
View File
@@ -1552,8 +1552,7 @@ body[data-hide-meta] .meta-panel {
width: 600px; width: 600px;
} }
.resource-dialog form > .form-actions { .resource-dialog .form-status:not(:empty) {
grid-template-columns: minmax(0, 1fr) auto;
margin-top: 12px; margin-top: 12px;
} }
@@ -1642,6 +1641,10 @@ body[data-hide-meta] .meta-panel {
min-height: 28px; min-height: 28px;
} }
.resource-actions > #resourceClose {
margin-left: auto;
}
.resource-actions > [hidden] { .resource-actions > [hidden] {
display: none; display: none;
} }
+3 -1
View File
@@ -23,7 +23,7 @@ const batch = { items: [], formats: [], running: false, canceled: false, worker:
const batchElements = Object.fromEntries(["Button", "Panel", "Form", "Input", "Add", "Clear", "Count", "Format", "Compression", "FontRow", "FontMode", "Destination", "DPIRow", "DPI", "List", "Empty", "Progress", "Status", "Close", "Cancel", "Start"].map(name => [name, document.querySelector(`#convert${name}`)])); const batchElements = Object.fromEntries(["Button", "Panel", "Form", "Input", "Add", "Clear", "Count", "Format", "Compression", "FontRow", "FontMode", "Destination", "DPIRow", "DPI", "List", "Empty", "Progress", "Status", "Close", "Cancel", "Start"].map(name => [name, document.querySelector(`#convert${name}`)]));
const fontBinding = { font: null, choices: [], sequence: 0 }; const fontBinding = { font: null, choices: [], sequence: 0 };
const fontBindingElements = Object.fromEntries(["Panel", "Form", "Title", "Name", "SourceRow", "Source", "File", "Hint", "Status", "Cancel", "Submit"].map(name => [name, document.querySelector(`#fontBinding${name}`)])); const fontBindingElements = Object.fromEntries(["Panel", "Form", "Title", "Name", "SourceRow", "Source", "File", "Hint", "Status", "Cancel", "Submit"].map(name => [name, document.querySelector(`#fontBinding${name}`)]));
const resourceElements = Object.fromEntries(["ManageButton", "Panel", "Form", "Kind", "List", "Empty", "Reference", "Add", "Preview", "Export", "Rename", "Replace", "Delete", "Locate", "Close", "Binding", "Page", "Object", "Pick", "Bind", "Unbind", "Viewer", "Status", "File"].map(name => [name, document.querySelector(`#resource${name}`)])); const resourceElements = Object.fromEntries(["ManageButton", "Panel", "Form", "Kind", "List", "Empty", "Reference", "Actions", "Add", "Preview", "Export", "Rename", "Replace", "Delete", "Locate", "Close", "Binding", "BindingActions", "Page", "Object", "Pick", "Bind", "Unbind", "Viewer", "Status", "File"].map(name => [name, document.querySelector(`#resource${name}`)]));
const resourceManager = { items: [], selected: null, targets: [], pick: null, busy: false, sequence: 0, url: null, font: null, fileAction: null }; const resourceManager = { items: [], selected: null, targets: [], pick: null, busy: false, sequence: 0, url: null, font: null, fileAction: null };
let wasmPromise = null; let wasmPromise = null;
@@ -5189,6 +5189,8 @@ function updateResourceControls() {
resourceElements.Delete.title = item?.kind === "Attachment" ? "删除附件" : item?.references?.length ? "资源仍被引用" : "删除资源"; resourceElements.Delete.title = item?.kind === "Attachment" ? "删除附件" : item?.references?.length ? "资源仍被引用" : "删除资源";
resourceElements.Locate.disabled = disabled || !item?.references?.length; resourceElements.Locate.disabled = disabled || !item?.references?.length;
resourceElements.Binding.hidden = !editing || !actionable; resourceElements.Binding.hidden = !editing || !actionable;
const actions = resourceElements.Binding.hidden ? resourceElements.Actions : resourceElements.BindingActions;
if (resourceElements.Close.parentElement !== actions) actions.append(resourceElements.Close);
const target = resourceManager.targets.find(target => target.id === resourceElements.Object.value); const target = resourceManager.targets.find(target => target.id === resourceElements.Object.value);
resourceElements.Pick.disabled = disabled || !editing || !actionable || Boolean(state.composite); resourceElements.Pick.disabled = disabled || !editing || !actionable || Boolean(state.composite);
resourceElements.Bind.disabled = disabled || !actionable || !target || target.bound; resourceElements.Bind.disabled = disabled || !actionable || !target || target.bound;