diff --git a/src/components/DynamicForm.vue b/src/components/DynamicForm.vue index 719ea52..777b9df 100644 --- a/src/components/DynamicForm.vue +++ b/src/components/DynamicForm.vue @@ -303,6 +303,7 @@ watch( " >移除 + @@ -377,4 +379,28 @@ watch( margin-right: 8px; border-radius: 4px; } +.dyn-file-btn { + display: inline-block; + cursor: pointer; +} +.dyn-file-btn-inner { + display: inline-flex; + align-items: center; + gap: 4px; + padding: 0 7px; + border: 1px solid #dcdee2; + border-radius: 4px; + background: #fff; + color: #515a6e; + font-size: 12px; + line-height: 26px; + cursor: pointer; + user-select: none; + transition: color 0.2s, border-color 0.2s; +} +.dyn-file-btn:hover .dyn-file-btn-inner { + color: #2d8cf0; + border-color: #2d8cf0; +} + diff --git a/src/views/Hall.vue b/src/views/Hall.vue index 85649ca..8b87f24 100644 --- a/src/views/Hall.vue +++ b/src/views/Hall.vue @@ -95,6 +95,11 @@ function apply(item: HallItem) { }); } +/** 封面地址不可达时隐藏占位,避免裂图图标 */ +function hideCover(e: Event) { + (e.target as HTMLImageElement).style.display = "none"; +} + onMounted(async () => { siteCode.value = resolveSite(route.query.siteCode); await loadFilters(); @@ -139,6 +144,13 @@ onMounted(async () => {
+
{{ item.title }}
{{ item.summary || "暂无事项说明" }}
@@ -233,6 +245,13 @@ onMounted(async () => { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.07); transform: translateY(-2px); } +.item-cover { + width: 100%; + height: 96px; + object-fit: cover; + border-radius: calc(var(--sh-radius) - 4px); + margin-bottom: 10px; +} .item-title { font-size: 16px; font-weight: 600;