'boolean', ]; /** * @return array */ public static function activeOptions(string $dictType): array { return static::query() ->where('dict_type', $dictType) ->where('is_active', true) ->orderBy('sort') ->orderBy('id') ->get(['item_value', 'item_label']) ->map(fn ($r) => [ 'value' => (string) $r->item_value, 'label' => (string) $r->item_label, ]) ->values() ->all(); } /** * 场馆主题(venue_type):附带 item_remark 解析后的主题色,供 H5 地图与筛选一致。 * * @return array */ public static function activeVenueTypeOptionsWithColor(): array { return static::query() ->where('dict_type', 'venue_type') ->where('is_active', true) ->orderBy('sort') ->orderBy('id') ->get(['item_value', 'item_label', 'item_remark']) ->map(function ($r) { $color = '#05c9ac'; $raw = $r->item_remark; if (is_string($raw) && trim($raw) !== '') { $t = trim($raw); if (! str_starts_with($t, '#')) { $t = '#'.$t; } if (preg_match('/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/', $t)) { $color = $t; } } return [ 'value' => (string) $r->item_value, 'label' => (string) $r->item_label, 'color' => $color, ]; }) ->values() ->all(); } }