From 4c2bd7e000cb6a010972a7d83cd773a691e08bba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B2=A9=E4=BB=9488?= <> Date: Fri, 20 Mar 2026 09:51:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/ComboItemController.php | 48 +++++++++++++++++++- 北京仁仁体检小程序/api/api.js | 2 +- 北京仁仁体检小程序/api/index.js | 2 +- 3 files changed, 48 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/ComboItemController.php b/app/Http/Controllers/ComboItemController.php index af1679e..cd94bef 100644 --- a/app/Http/Controllers/ComboItemController.php +++ b/app/Http/Controllers/ComboItemController.php @@ -62,8 +62,16 @@ class ComboItemController extends Controller public function combo_info($hospital, $data) { $peis = new PEISApiController(); - $combo_info = $peis::Post('套餐详情查询', $hospital, $data)['data'][0]; - //Yo::error_exit(['message'=>"res",'code'=>200,'data'=>$combo_info]); + // 假设 Post 方法调用正确,这里保持原有逻辑 + $response = $peis::Post('套餐详情查询', $hospital, $data); + + // 增加简单的容错处理,防止数据为空报错 + if (empty($response['data']) || !isset($response['data'][0])) { + return []; // 或者返回默认结构,视业务需求而定 + } + + $combo_info = $response['data'][0]; + $info = [ 'id' => $combo_info['Id'], 'name' => $combo_info['名称'], @@ -72,15 +80,51 @@ class ComboItemController extends Controller 'sex' => $combo_info['性别限制'], 'items' => [], ]; + + // 定义指定的排序顺序 + $sortOrder = [ + "一般检查" => 1, + "内科" => 2, + "外科" => 3, + "眼科" => 4, + "心电图" => 5, + "妇科" => 6, + "检验科" => 7, + "超声科" => 8, + "DR" => 9, + "CT" => 10, + ]; + foreach ($combo_info['包含项目'] as $item) { $info['items'][] = [ 'id' => $item['Id'], 'name' => $item['名称'], 'price' => $item['价格'], 'jianjie' => $item['简介'], + 'keshi_name' => $item['科室名称'], ]; } + + // 执行排序 + usort($info['items'], function ($a, $b) use ($sortOrder) { + $deptA = $a['keshi_name']; + $deptB = $b['keshi_name']; + + // 获取排名,如果不在列表中,赋予一个很大的值(排在最后) + $rankA = isset($sortOrder[$deptA]) ? $sortOrder[$deptA] : 9999; + $rankB = isset($sortOrder[$deptB]) ? $sortOrder[$deptB] : 9999; + + // 如果排名相同(例如都在列表中且相同,或都不在列表中),保持原有相对顺序或按名称排序(可选) + // 这里简单处理:如果排名一样,返回0 + if ($rankA == $rankB) { + return 0; + } + + return ($rankA < $rankB) ? -1 : 1; + }); + $info['count'] = count($info['items']); + return $info; } diff --git a/北京仁仁体检小程序/api/api.js b/北京仁仁体检小程序/api/api.js index c6701b0..810c645 100644 --- a/北京仁仁体检小程序/api/api.js +++ b/北京仁仁体检小程序/api/api.js @@ -1,7 +1,7 @@ let url_ = "https://bjrrtj-api.sixinyun.com"; let report_url_ = "https://bjrrtj-api.sixinyun.com"; let h5_url_ = "https://bjrrtj-api.sixinyun.com"; -const dev = 0; +const dev = 1; if (dev === 1) { url_ = "http://localbeijingrenren"; report_url_ = "http://192.168.31.106:5173"; diff --git a/北京仁仁体检小程序/api/index.js b/北京仁仁体检小程序/api/index.js index f90115e..8e19466 100644 --- a/北京仁仁体检小程序/api/index.js +++ b/北京仁仁体检小程序/api/index.js @@ -3,7 +3,7 @@ import { } from '@/lu/axios.js' import $api from './api.js' let url_ = "https://bjrrtj-api.sixinyun.com"; -const dev =0 +const dev =1 if (dev === 1) { url_ = "http://localbeijingrenren" }