diff --git a/assets/admin/src/components/form/AksField.vue b/assets/admin/src/components/form/AksField.vue
index b6827d0f..2e2a371a 100644
--- a/assets/admin/src/components/form/AksField.vue
+++ b/assets/admin/src/components/form/AksField.vue
@@ -329,6 +329,7 @@
:model-value="modelValue"
:options="normalizedOptions"
:disabled="schema.disabled"
+ :preview-width="schema.previewWidth"
@update:model-value="emit('update:modelValue', $event)"
/>
diff --git a/assets/admin/src/components/form/AksImageSelectField.vue b/assets/admin/src/components/form/AksImageSelectField.vue
index e7d8fae0..03c53a33 100644
--- a/assets/admin/src/components/form/AksImageSelectField.vue
+++ b/assets/admin/src/components/form/AksImageSelectField.vue
@@ -11,8 +11,8 @@
:disabled="disabled"
@click="emit('update:modelValue', opt.value)"
>
-
-
+
+
{{ opt.label }}
@@ -24,12 +24,21 @@
/** image_select:带预览图的单选。 */
import FaIcon from './FaIcon.vue'
-defineProps({
+const props = defineProps({
modelValue: { default: null },
options: { type: Array, default: () => [] },
disabled: { type: Boolean, default: false },
+ // Preview width in px. Layout strips (header/footer) are very wide and only
+ // need enough width to be legible; near-square previews want more room.
+ previewWidth: { type: [Number, String], default: 140 },
})
const emit = defineEmits(['update:modelValue'])
+
+// An option may override the group width via its own `width`.
+function imgStyle(opt) {
+ const width = opt && opt.width ? opt.width : props.previewWidth
+ return { '--aksrt-image-select-max': typeof width === 'number' ? `${width}px` : width }
+}