where('status', 1) ->field('id, name, seat_map') ->select() ->toArray(); $templateData = []; foreach ($templates as $t) { $seatMap = json_decode($t['seat_map'] ?? '{}', true); // 补全缺失的 room.id(老格式 seat_map 里没有 id 字段) if (!empty($seatMap['rooms'])) { foreach ($seatMap['rooms'] as $rIdx => &$room) { if (empty($room['id'])) { $room['id'] = 'room_' . $rIdx; } } unset($room); } $t['seat_map'] = $seatMap; $templateData[] = $t; } // 查询 level=2 城市列表(用于动态替换 produce_region 下拉选项) $cityList = Db::name('Region') ->field('id, pid, name, level, letters') ->where(['level' => 2, 'is_enable' => 1]) ->order('sort asc, id asc') ->select() ->toArray(); // 获取已保存的生产地/城市 ID(用于回显) $savedProduceRegion = intval($data['produce_region'] ?? 0); $initData = [ 'isTicket' => $isTicket, 'vrGoodsConfig' => $vrGoodsConfig, 'templates' => $templateData, 'cityList' => $cityList, 'savedProduceRegion' => $savedProduceRegion, ]; $jsonInitData = base64_encode(json_encode($initData, JSON_UNESCAPED_UNICODE)); $html = <<
暂无启用的场馆模板。

► 场馆配置:{{ getTemplateName(config.template_id) }}

{{ session._error }}
该场馆内无放映室/演播厅数据

• {{ getRoomName(config.template_id, roomId) }}

该放映室无分区数据
EOF; return $html; } private static function table($name) { return 'vr_' . $name; } }