From be69bab75659192e0f5eb9413e3012d6d36145c3 Mon Sep 17 00:00:00 2001 From: yanzai Date: Thu, 14 Nov 2024 00:25:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=A2=E6=A3=80=E6=B5=81=E7=A8=8B=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E3=80=81=E5=9B=A2=E6=A3=80=E5=A2=9E=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E9=80=89=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/API/H5/ComboController.php | 14 ++- .../Controllers/API/H5/PersonController.php | 61 ++++++++++++ .../Controllers/API/PEISApiController.php | 3 + h5/pages/main/tj/choose.vue | 98 ++++++++++++++++++- h5/pages/main/tj/tjxq.vue | 11 ++- 5 files changed, 183 insertions(+), 4 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/H5/ComboController.php b/Laravel/app/Http/Controllers/API/H5/ComboController.php index 916329d..0d04103 100644 --- a/Laravel/app/Http/Controllers/API/H5/ComboController.php +++ b/Laravel/app/Http/Controllers/API/H5/ComboController.php @@ -433,7 +433,19 @@ select combo_id as c_id,count(*) as sale_count from orders where status in(2,4) $true_price = $true_price + $group_info[0]['sixi_zong_ji_jin_e']; $true_price = ($true_price - $group_info[0]['tongshou_xiane']) > 0 ? $true_price - $group_info[0]['tongshou_xiane'] : 0; - + //如果有多选一项目 + //构建多选一数据 + $Nx1_arrInfo=[]; + if(isset($duo_xuan_yi) and !empty($duo_xuan_yi)){ + foreach ($duo_xuan_yi as $r_k=>$r_v){ + $Nx1_arrInfo[]=[ + 'id' => $r_v['item_id'], + 'name' => $r_v['item_name'], + ]; + } + } + $group_info[0]['items'] =array_merge($group_info[0]['items'],$Nx1_arrInfo); //合并多选一 +// return \Yz::Return(true,"",$group_info[0]['items']); $all_items = DB::table('items')->where(['status' => 1])->get(); $item_new = []; foreach ($group_info[0]['items'] as $item) { diff --git a/Laravel/app/Http/Controllers/API/H5/PersonController.php b/Laravel/app/Http/Controllers/API/H5/PersonController.php index 93745cc..740d3ef 100644 --- a/Laravel/app/Http/Controllers/API/H5/PersonController.php +++ b/Laravel/app/Http/Controllers/API/H5/PersonController.php @@ -16,6 +16,7 @@ class PersonController extends Controller $group_list=[]; foreach ($info['data'] as $it) { $items = []; + $duoxuan_yi=[]; $group_info = $it; if (isset($group_info['项目列表'])) { foreach ($group_info['项目列表'] as $datum) { @@ -25,6 +26,60 @@ class PersonController extends Controller ]; } } + + + + if(isset($group_info['单位Id']) and !empty($group_info['单位Id']) and isset($group_info['分组Id']) and !empty($group_info['分组Id'])){ + $peis = new PEISApiController(); + $data=[ + "单位Id"=>$group_info['单位Id'] + ]; + $fenzu = $peis::Post('单位分组批次查询', 1, $data); + + foreach ($fenzu['data'][0]['分组'] as $key => $value) { + if($value['Id']==$group_info['分组Id']){ + if (isset($value['包含项目信息'])) { + foreach ($value['包含项目信息'] as $datum) { + $items[] = [ + 'id' => $datum['Id'], + 'name' => $datum['名称'], + ]; + } + } + if(isset($value['包含多选一组'])){ + //多选一 + $duo_xuan_yi=[]; + + $N1=$value['包含多选一组']; + foreach ($N1 as $k=>$v){ + $duo_xuan_yi[$k][]=[ + 'zu_name'=>$v['组名称'], + 'item_list'=>[] + ]; + foreach ($v['包含项目'] as $k2=>$v2){ + $duo_xuan_yi[$k]['item_list'][]= + [ + 'item_id' =>$v2['Id'], + 'item_name' => $v2['名称'], + 'price'=>$v2['价格'] + ]; + + + + } + + } + $duoxuan_yi= $duo_xuan_yi; + } + break; + } + } + } + + + + + $checkup_type=DB::table('checkup_type')->where(['status'=>1,'is_del'=>0])->get(); $checkup_type_id=0; foreach ($checkup_type as $ct) { @@ -44,8 +99,11 @@ class PersonController extends Controller 'group_id' => $group_info['预约Id'], 'tongshou_xiane'=>$group_info['统收限额'], 'sixi_zong_ji_jin_e'=>$group_info['总计金额'], + 'danwei_id'=>$group_info['单位Id'], + 'fenzu_id'=>$group_info['分组Id'], 'checkup_type_id'=>$checkup_type_id, 'items' => $items, + 'duo_xuan_yi'=>$duoxuan_yi, ]; $group_list[]=$data; } @@ -81,9 +139,12 @@ class PersonController extends Controller //获取团检套餐 public function GetGroupCombo() { + $hospital_id = request('hospital_id'); $group_id = request('group_id'); + if (!isset($group_id)) return \Yz::echoError1('group_id不能为空'); + $data = [ '电话号码' => null, '证件号码' => null, diff --git a/Laravel/app/Http/Controllers/API/PEISApiController.php b/Laravel/app/Http/Controllers/API/PEISApiController.php index 5adcbf5..dfee1c5 100644 --- a/Laravel/app/Http/Controllers/API/PEISApiController.php +++ b/Laravel/app/Http/Controllers/API/PEISApiController.php @@ -37,6 +37,7 @@ class PEISApiController extends Controller $api['预约时段修改'] = "{$url}/PEISCommon/ModifyAppointmentDTRange?key=YmMxOGI2MDUxZmFh"; $api['修改用户预约时间'] = "{$url}/ExtAPI/SetAppointmentMoment?key=YmMxOGI2MDUxZmFh&{$code}"; $api['分诊查询体检号'] = "{$url}/PEISCommon/QueryEventNo?key=YmMxOGI2MDUxZmFh"; + $api['单位分组批次查询'] = "{$url}/PEISCommon/QueryBatchAndGroup?key=YmMxOGI2MDUxZmFh"; $api['报告时间计算'] = "{$url}/Home/CalcReportDays?eventNo={$code}"; $api['弃检接口'] = "{$url}/Home/AbandonCheck"; @@ -58,6 +59,8 @@ class PEISApiController extends Controller $api['预约时段修改'] = "{$url}/PEISCommon/ModifyAppointmentDTRange/{$code}"; $api['修改用户预约时间'] = "http://220.174.210.111:8888/ExtAPI/SetAppointmentMoment?key=YmMxOGI2MDUxZmFh&{$code}"; $api['分诊查询体检号'] = "{$url}/PEISCommon/QueryEventNo/{$code}"; + $api['单位分组批次查询'] = "{$url}/PEISCommon/QueryBatchAndGroup/{$code}"; + $api['报告时间计算'] = "{$url}/Home/CalcReportDays?eventNo={$code}"; $api['弃检接口'] = "{$url}/Home/AbandonCheck/{$code}"; } diff --git a/h5/pages/main/tj/choose.vue b/h5/pages/main/tj/choose.vue index 783071b..202bcbc 100644 --- a/h5/pages/main/tj/choose.vue +++ b/h5/pages/main/tj/choose.vue @@ -14,6 +14,13 @@ const person_list = ref([]); let popup = ref(null); let unitList = ref([]); // 单位列表 + +let popupMultiple = ref(false); // 多选弹窗 +let multipleList = ref([]); // 多选列表 +let multipleIndex = ref(0); // 多选索引 +let itemIds = ref([]); // 项目id集合 +let itemId = ref(""); // 项目id + const getPersonList = async () => { uni.showLoading(); const response = await $api("GetPersonList"); @@ -72,7 +79,18 @@ const getGroupCombo = async (info) => { url: "/pages/main/tj/selectType", }); } else { - // 跳转到团检自选 + // 跳转到详情 + //如果有多选一弹出选择 + if (data.duo_xuan_yi.length > 0) { + popupMultiple.value.open("center"); + multipleIndex.value = 0; + itemIds.value = []; + $store.setDuoXuanYi([]); + itemId.value = ""; + multipleList.value = data.duo_xuan_yi; + return; + } + uni.navigateTo({ url: "/pages/main/tj/tjxq?groupId=" + info.group_id, }); @@ -80,7 +98,35 @@ const getGroupCombo = async (info) => { } }); }; - +const nextItemClick = () => { + let groupInfo=$store.getGroupInfo(); + console.log('----',groupInfo) + if (!itemId.value) { + uni.$lu.toast("请选择项目"); + return; + } + let item_name=""; + multipleList.value[multipleIndex.value]['item_list'].forEach((vv,ii)=>{ + if(vv.item_id==itemId.value){ + item_name=vv.item_name + } + }) + itemIds.value.push({ + item_id: itemId.value, + item_name:item_name, + zu_name: multipleList.value[multipleIndex.value]["0"]["zu_name"], + }); + if (multipleIndex.value == multipleList.value.length - 1) { + $store.setDuoXuanYi(itemIds.value); + popupMultiple.value.close(); + uni.navigateTo({ + url: "/pages/main/tj/tjxq?groupId=" + groupInfo.group_id, + }); + return; + } + itemId.value = ""; + multipleIndex.value = multipleIndex.value + 1; +}; onShow(() => { if (!!config_ref.value) { getPersonList(); @@ -90,6 +136,54 @@ onShow(() => {