|
@@ -182,6 +182,18 @@
|
|
|
);
|
|
);
|
|
|
$optionsClass = $layoutMeta['class'];
|
|
$optionsClass = $layoutMeta['class'];
|
|
|
$layoutDesc = $layoutMeta['layout'];
|
|
$layoutDesc = $layoutMeta['layout'];
|
|
|
|
|
+ $hasImageOptionInQuestion = false;
|
|
|
|
|
+ foreach ($options as $optRaw) {
|
|
|
|
|
+ if (preg_match('/<(img|image|svg)\\b|data:image\\//i', (string) $optRaw) === 1) {
|
|
|
|
|
+ $hasImageOptionInQuestion = true;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($hasImageOptionInQuestion) {
|
|
|
|
|
+ // 简化规则:图片选项固定四列同一行展示
|
|
|
|
|
+ $optionsClass = 'options-grid-4';
|
|
|
|
|
+ $layoutDesc = '4列布局(图片选项固定)';
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
\Illuminate\Support\Facades\Log::debug('选择题布局决策', [
|
|
\Illuminate\Support\Facades\Log::debug('选择题布局决策', [
|
|
|
'question_number' => $questionNumber,
|
|
'question_number' => $questionNumber,
|
|
@@ -189,6 +201,7 @@
|
|
|
'opt_count' => $layoutMeta['opt_count'],
|
|
'opt_count' => $layoutMeta['opt_count'],
|
|
|
'max_length' => $layoutMeta['max_length'],
|
|
'max_length' => $layoutMeta['max_length'],
|
|
|
'has_complex_formula' => $layoutMeta['has_complex_formula'],
|
|
'has_complex_formula' => $layoutMeta['has_complex_formula'],
|
|
|
|
|
+ 'has_image_option' => $hasImageOptionInQuestion,
|
|
|
'selected_class' => $optionsClass,
|
|
'selected_class' => $optionsClass,
|
|
|
'layout' => $layoutDesc
|
|
'layout' => $layoutDesc
|
|
|
]);
|
|
]);
|
|
@@ -229,7 +242,8 @@
|
|
|
$rawOptLen = mb_strlen((string) $rawOptText, 'UTF-8');
|
|
$rawOptLen = mb_strlen((string) $rawOptText, 'UTF-8');
|
|
|
$isShortOption = $rawOptLen <= 8;
|
|
$isShortOption = $rawOptLen <= 8;
|
|
|
@endphp
|
|
@endphp
|
|
|
- <div class="option option-compact">
|
|
|
|
|
|
|
+ @php $hasImageOption = preg_match('/<(img|image|svg)\\b|data:image\\//i', (string) $renderedOpt) === 1; @endphp
|
|
|
|
|
+ <div class="option option-compact {{ $hasImageOption ? 'option-with-image' : '' }}">
|
|
|
<strong>{{ $label }}.</strong>
|
|
<strong>{{ $label }}.</strong>
|
|
|
<span class="option-value {{ $isShortOption ? 'option-short' : 'option-long' }}">{!! $renderedOpt !!}</span>
|
|
<span class="option-value {{ $isShortOption ? 'option-short' : 'option-long' }}">{!! $renderedOpt !!}</span>
|
|
|
</div>
|
|
</div>
|