From dd6f75f3c47b622ba412b7a1af966eb9478c4644 Mon Sep 17 00:00:00 2001 From: sa0ChunLuyu Date: Mon, 8 Jul 2024 09:23:14 +0800 Subject: [PATCH] no message --- .../app/Http/Controllers/ViewController.php | 156 +++++++++++++ Laravel/public/assets/css/layout.css | 56 +++++ Laravel/public/assets/images/footer-icon.png | Bin 0 -> 11868 bytes Laravel/public/assets/images/qy-logo.png | Bin 0 -> 9882 bytes Laravel/public/assets/images/yy-logo.png | Bin 0 -> 12799 bytes Laravel/resources/views/combo/combo.blade.php | 12 +- Laravel/resources/views/combo/combo.css | 15 +- Laravel/resources/views/combo/combo.js | 9 + .../views/combo_list/combo_list.blade.php | 92 ++++++++ .../resources/views/combo_list/combo_list.css | 206 ++++++++++++++++++ .../resources/views/combo_list/combo_list.js | 39 ++++ .../views/components/footer.blade.php | 15 +- .../views/components/header.blade.php | 14 +- Laravel/resources/views/home/home.blade.php | 49 ++++- Laravel/resources/views/home/home.css | 39 +++- .../resources/views/layout/layout.blade.php | 159 ++++++++------ Laravel/routes/web.php | 1 + 17 files changed, 779 insertions(+), 83 deletions(-) create mode 100644 Laravel/public/assets/images/footer-icon.png create mode 100644 Laravel/public/assets/images/qy-logo.png create mode 100644 Laravel/public/assets/images/yy-logo.png create mode 100644 Laravel/resources/views/combo_list/combo_list.blade.php create mode 100644 Laravel/resources/views/combo_list/combo_list.css create mode 100644 Laravel/resources/views/combo_list/combo_list.js diff --git a/Laravel/app/Http/Controllers/ViewController.php b/Laravel/app/Http/Controllers/ViewController.php index 37f9019..3ea006d 100644 --- a/Laravel/app/Http/Controllers/ViewController.php +++ b/Laravel/app/Http/Controllers/ViewController.php @@ -21,6 +21,155 @@ class ViewController extends Controller return $site; } + public function public_config() + { + $request = request(); + $search = $request->get('search') ?? ''; + return [ + 'search_value' => $search, + 'search_tags' => ['女性', '男性', '入职', '父母', '高端'] + ]; + } + + public function combo_list(Request $request) + { + $site = self::site(); + if (!$site) return '站点暂时关闭'; + $hospital_ids = json_decode($site->hospital, true); + $type = $request->get('type') ?? ''; + $combo_type = $request->get('combo_type') ?? ''; + $price = $request->get('price') ?? ''; + $sex = $request->get('sex') ?? ''; + $order = $request->get('order') ?? 'zh'; + $search = $request->get('search') ?? ''; + + $combos = DB::table('combos') + ->whereIn('hospital_id', $hospital_ids) + ->where(function ($query) use ($type) { + if ($type != '') $query->where('tags', 'like', "%\"$type\"%"); + }) + ->where(function ($query) use ($combo_type) { + if ($combo_type != '') $query->where('tags', 'like', "%\"$combo_type\"%"); + }) + ->where(function ($query) use ($price) { + if ($price != '') { + $price_arr = explode('-', $price); + if (count($price_arr) == 2) { + $query->whereBetween('price', [$price_arr[0], $price_arr[1]]); + } else { + $price_arr = explode('u', $price); + $query->where('price', '>=', $price_arr[0]); + } + } + }) + ->where(function ($query) use ($sex) { + if ($sex != '') $query->whereIn('sex', [0, $sex]); + }) + ->where(function ($query) use ($search) { + if ($search != '') $query->where('tags', 'like', "%\"$search\"%") + ->orWhere('name', 'like', "%$search%"); + }) + ->orderBy($order == 'zh' ? 'id' : 'price', $order == 'zh' ? 'desc' : 'asc') + ->paginate(20) + ->withQueryString() + ->toArray(); + $combo_count = DB::table('combos') + ->whereIn('hospital_id', $hospital_ids) + ->where(function ($query) use ($type) { + if ($type != '') $query->where('tags', 'like', "%\"$type\"%"); + }) + ->where(function ($query) use ($combo_type) { + if ($combo_type != '') $query->where('tags', 'like', "%\"$combo_type\"%"); + }) + ->where(function ($query) use ($price) { + if ($price != '') { + $price_arr = explode('-', $price); + if (count($price_arr) == 2) { + $query->whereBetween('price', [$price_arr[0], $price_arr[1]]); + } else { + $price_arr = explode('u', $price); + $query->where('price', '>=', $price_arr[0]); + } + } + }) + ->where(function ($query) use ($sex) { + if ($sex != '') $query->whereIn('sex', [0, $sex]); + }) + ->where(function ($query) use ($search) { + if ($search != '') $query->where('tags', 'like', "%\"$search\"%") + ->orWhere('name', 'like', "%$search%"); + }) + ->count(); + + $search_arr = [[ + 'label' => '体检类型', + 'value' => 'type', + 'options' => [ + ['label' => '不限', 'value' => ''], + ['label' => '中老年', 'value' => '中老年'], + ['label' => '青年女性', 'value' => '青年女性'], + ['label' => '基础套餐', 'value' => '基础套餐'], + ['label' => '入职体检', 'value' => '入职体检'], + ] + ], [ + 'label' => '体检套餐', + 'value' => 'combo_type', + 'options' => [ + ['label' => '不限', 'value' => ''], + ['label' => '肝脏疾病', 'value' => '肝脏疾病'], + ['label' => '糖尿病', 'value' => '糖尿病'], + ['label' => '泌尿系统疾病', 'value' => '泌尿系统疾病'], + ['label' => '高血脂', 'value' => '高血脂'], + ['label' => '高血糖', 'value' => '高血糖'], + ['label' => '消化系统疾病', 'value' => '消化系统疾病'], + ['label' => '前列腺疾病', 'value' => '前列腺疾病'], + ['label' => '妇科疾病', 'value' => '妇科疾病'], + ['label' => '甲状腺疾病', 'value' => '甲状腺疾病'], + ['label' => '心血管疾病', 'value' => '心血管疾病'], + ['label' => '心脏病', 'value' => '心脏病'], + ['label' => '骨质疏松', 'value' => '骨质疏松'], + ['label' => '腰颈肩病', 'value' => '腰颈肩病'], + ['label' => '风湿病', 'value' => '风湿病'], + ['label' => '肺部疾病', 'value' => '肺部疾病'], + ] + ], [ + 'label' => '价格区间', + 'value' => 'price', + 'options' => [ + ['label' => '不限', 'value' => ''], + ['label' => '100-300', 'value' => '100-300'], + ['label' => '300-500', 'value' => '300-500'], + ['label' => '500-800', 'value' => '500-800'], + ['label' => '800以上', 'value' => '800u'], + ] + ], [ + 'label' => '性别', + 'value' => 'sex', + 'options' => [ + ['label' => '不限', 'value' => ''], + ['label' => '男', 'value' => '1'], + ['label' => '女', 'value' => '2'], + ] + ]]; + foreach ($combos['data'] as $combo) { + $combo->tags_arr = json_decode($combo->tags, true); + } +// Yz::debug(['a' => $combos]); + return view('combo_list.combo_list', [ + 'public_config' => self::public_config(), + 'combos' => $combos, + 'combo_count' => $combo_count, + 'search_arr' => $search_arr, + 'search_choose' => [ + 'type' => $type, + 'combo_type' => $combo_type, + 'price' => $price, + 'sex' => $sex, + 'order' => $order, + ] + ]); + } + public function home() { $site = self::site(); @@ -29,6 +178,7 @@ class ViewController extends Controller $combos = DB::table('combos') ->whereIn('hospital_id', $hospital_ids) ->limit(8) + ->orderBy('id', 'desc') ->get(); foreach ($combos as $combo) { $combo->tags_arr = json_decode($combo->tags, true); @@ -36,11 +186,13 @@ class ViewController extends Controller $hospital_list = DB::table('hospital') ->whereIn('id', $hospital_ids) ->limit(8) + ->orderBy('id', 'desc') ->get(); foreach ($hospital_list as $hospital) { $hospital->tags_arr = json_decode($hospital->tags, true); } return view('home.home', [ + 'public_config' => self::public_config(), 'combos' => $combos, 'hospitals' => $hospital_list, ]); @@ -61,7 +213,11 @@ class ViewController extends Controller ->where('id', $combo->hospital_id) ->first(); $url = $hospital->mp_jump . '?combo=' . $combo->combo_id . '&hospital=' . $hospital->code; +// Yz::debug([ +// 'a' => $hospital +// ]); return view('combo.combo', [ + 'public_config' => self::public_config(), 'qrcode' => $url, 'combo' => $combo, 'hospital' => $hospital, diff --git a/Laravel/public/assets/css/layout.css b/Laravel/public/assets/css/layout.css index 24a0af0..60f1b82 100644 --- a/Laravel/public/assets/css/layout.css +++ b/Laravel/public/assets/css/layout.css @@ -2,6 +2,57 @@ --style-color-1: #86b883; --style-color-2: #d35050; --style-color-3: #aee3ab; + --style-color-4: #e19898; +} + +.footer_beian_wrapper { + padding-top: 30px; + margin-top: 30px; + border-top: 1px solid #8c939d30; + text-align: center; + line-height: 40px; + font-size: 16px; + color: #8c939d; +} + +.footer_web_icon_wrapper { + width: 500px; +} + + +.footer_web_icon_wrapper img { + width: 500px; +} + +.footer_web_wrapper { + display: flex; + justify-content: space-between; + align-items: center; +} + +.footer_web_logo_wrapper { + +} + +.footer_web_logo_icon_wrapper { + width: 200px; + height: 80px; + line-height: 80px; + font-weight: bold; + font-size: 30px; +} + +.footer_web_logo_text_wrapper { + width: 400px; + line-height: 28px; + font-size: 16px; + color: #8c939d; +} + +.footer_wrapper { + background: #f1f2f4; + padding: 30px 50px; + margin-top: 20px; } .header_info_wrapper { @@ -60,6 +111,11 @@ cursor: pointer; } +.header_search_tag_active_wrapper { + color: #ffffff; + background: var(--style-color-1); +} + .header_search_wrapper { margin-left: 30px; } diff --git a/Laravel/public/assets/images/footer-icon.png b/Laravel/public/assets/images/footer-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d1869bb947756f5391e0f2be5f82199459d72871 GIT binary patch literal 11868 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 literal 0 HcmV?d00001 diff --git a/Laravel/public/assets/images/qy-logo.png b/Laravel/public/assets/images/qy-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad80fb391765cf49028a0f8505ab9e50c74e463 GIT binary patch literal 9882 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 literal 0 HcmV?d00001 diff --git a/Laravel/public/assets/images/yy-logo.png b/Laravel/public/assets/images/yy-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..93a184347eb83c58bae942850426b013f020dd44 GIT binary patch literal 12799 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 $combo->name }}
优惠价
-
¥ {{ $combo->price }}
+
+ ¥ {{ $combo->price }} + @if($combo->price < $combo->original_price) + {{ $combo->original_price }} + @endif +
套餐简介:
@@ -99,6 +104,11 @@
医院简介
{!! $hospital->desc !!}
+
地图
+
+
+
@endsection diff --git a/Laravel/resources/views/combo/combo.css b/Laravel/resources/views/combo/combo.css index a2cc3cc..7405332 100644 --- a/Laravel/resources/views/combo/combo.css +++ b/Laravel/resources/views/combo/combo.css @@ -3,6 +3,11 @@ text-align: center; } +#hospital_map_container { + width: 100%; + height: 400px; +} + .qrcode_box_wrapper { width: 200px; height: 200px; @@ -225,10 +230,18 @@ margin-left: 20px; } +.combo_price_original_price_wrapper { + font-size: 18px; + margin-left: 10px; + color: var(--style-color-4); + font-weight: 400; + text-decoration: line-through; +} + .combo_wrapper { display: flex; width: 1200px; - margin: 0 auto; + margin: 20px auto 0; justify-content: space-between; } diff --git a/Laravel/resources/views/combo/combo.js b/Laravel/resources/views/combo/combo.js index 3ff8834..a1a619f 100644 --- a/Laravel/resources/views/combo/combo.js +++ b/Laravel/resources/views/combo/combo.js @@ -29,12 +29,21 @@ const qrcodeRef = (e) => { qrcode_ref.value = e qrcodeCreate() } +const hospital_map_ref = ref(null) +const hospitalMapRef = (e, longitude, latitude) => { + hospital_map_ref.value = e + const map = new BMapGL.Map(hospital_map_ref.value); + const point = new BMapGL.Point(longitude, latitude); + map.centerAndZoom(point, 16); + map.enableScrollWheelZoom(true); +} // SCRIPT END // MOUNTED // MOUNTED END // RETURN const ret_ = { + hospitalMapRef, qrcodeRef, qrcode_show, showQrcodeClick, diff --git a/Laravel/resources/views/combo_list/combo_list.blade.php b/Laravel/resources/views/combo_list/combo_list.blade.php new file mode 100644 index 0000000..6754bae --- /dev/null +++ b/Laravel/resources/views/combo_list/combo_list.blade.php @@ -0,0 +1,92 @@ +@extends('layout.layout') +@section('content') +
+
体检套餐
+ +
体检机构
+
+
+
+ @foreach($search_arr as $search_list) +
+
{{ $search_list['label'] }}
+
+ @foreach($search_list['options'] as $search_item) +
{{ $search_item['label'] }}
+ @endforeach +
+
+ @endforeach +
+
+
+
排序方式
+
+
综合排序 +
+
折扣最多 +
+
+
共有{{ $combo_count }}个符合条件的套餐 +
+
+
+ + + @if(count($combos['data']) > 0) + + @else +
未搜索到符合条件的套餐
+ @endif +@endsection diff --git a/Laravel/resources/views/combo_list/combo_list.css b/Laravel/resources/views/combo_list/combo_list.css new file mode 100644 index 0000000..5c9428d --- /dev/null +++ b/Laravel/resources/views/combo_list/combo_list.css @@ -0,0 +1,206 @@ +.combo_list_search_wrapper, +.combo_list_order_wrapper { + width: 1200px; + margin: 20px auto 0; + border: 1px solid #cccccc; + padding: 10px; +} + +.combo_list_order_line_wrapper, +.combo_list_search_line_wrapper { + display: flex; + line-height: 60px; + border-bottom: 1px dashed #cccccc; + padding: 10px 0; +} + +.combo_list_order_line_wrapper { + border-bottom: none; +} + +.combo_list_count_number_wrapper { + color: var(--style-color-1); + margin: 5px; +} + +.combo_list_order_line_title_wrapper, +.combo_list_search_line_title_wrapper { + width: 80px; + font-size: 16px; + font-weight: bold; + color: #aaaaaa; + margin-left: 20px; +} + +.combo_list_order_line_content_wrapper, +.combo_list_search_line_content_wrapper { + display: flex; + margin-left: 20px; + width: calc(100% - 120px - 40px); + flex-wrap: wrap; + align-items: center; +} + +.combo_list_count_wrapper { + text-align: right; + width: 420px; +} + +.combo_list_order_line_content_wrapper { + width: calc(100% - 120px - 40px - 400px); +} + +.combo_list_order_line_content_item_wrapper, +.combo_list_search_line_content_item_wrapper { + padding: 0 20px; + text-align: center; + height: 40px; + line-height: 40px; + cursor: pointer; +} + +.combo_list_order_line_content_active_wrapper, +.combo_list_search_line_content_active_wrapper { + background: var(--style-color-1); + color: #fff; +} + +.combo_list_nav_wrapper { + height: 60px; + line-height: 60px; + border-bottom: 5px solid var(--style-color-1); + width: 1200px; + margin: 20px auto 0; + display: flex; + align-items: center; +} + +.combo_list_nav_item_wrapper { + height: 60px; + line-height: 60px; + width: 140px; + text-align: center; + cursor: pointer; +} + +.combo_list_nav_item_active_wrapper { + background: var(--style-color-1); + color: #fff; +} + + +.combo_price_wrapper { + font-size: 24px; + color: var(--style-color-2); + font-weight: bold; + margin-top: 10px; +} + +.combo_original_price_wrapper { + font-size: 18px; + margin-left: 10px; + color: var(--style-color-4); + font-weight: 400; + text-decoration: line-through; +} + +.combo_tag_wrapper { + padding: 5px 10px; + background: #eaeaea; + border-radius: 6px; + color: #676767; + margin-right: 5px; +} + +.combo_tags_wrapper { + display: flex; + flex-wrap: wrap; +} + +.combo_name_wrapper { + font-size: 20px; + line-height: 40px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.combo_cover_wrapper { + width: 100%; + height: 200px; + background: #cccccc; + line-height: 200px; + text-align: center; + color: #333333; + border-radius: 6px; + overflow: hidden; +} + +.combo_cover_wrapper img { + width: 100%; + height: 200px; + object-fit: cover; +} + +.combo_item_wrapper { + width: 25%; + padding: 5px; + margin-bottom: 10px; +} + +.combo_list_wrapper { + display: flex; + flex-wrap: wrap; + margin-top: 20px; +} + +.combo_wrapper { + width: 1200px; + margin: 20px auto 0; +} + +.page_wrapper { + display: flex; + justify-content: center; + flex-wrap: wrap; + margin-top: 40px; + margin-bottom: 70px; +} + +.page_item_wrapper { + margin: 5px; + padding: 0 10px; + height: 30px; + background: #FFFFFF; + border: 1px solid #E5E7EC; + line-height: 30px; + text-align: center; + font-size: 16px; + color: #B5B5C4; + cursor: pointer; +} + +.page_item_wrapper:hover { + background: #FAFAFA; + border: 1px solid #E5E7EC; + font-size: 16px; + color: var(--style-color-1); +} + +.page_item_active_wrapper { + background: #FAFAFA; + border: 1px solid #E5E7EC; + font-weight: bold; + font-size: 16px; + color: var(--style-color-1); +} + +.no_data_wrapper { + width: 100%; + font-size: 14px; + color: #999999; + line-height: 300px; + margin-top: 20px; + text-align: center; + height: 300px; +} diff --git a/Laravel/resources/views/combo_list/combo_list.js b/Laravel/resources/views/combo_list/combo_list.js new file mode 100644 index 0000000..dcd67d4 --- /dev/null +++ b/Laravel/resources/views/combo_list/combo_list.js @@ -0,0 +1,39 @@ +// SCRIPT +const pageJump = (key, value) => { + let search_data = { + ...page_options.value, + } + search_data[key] = value + if (key !== 'page') { + search_data.page = 1 + } + let url = `/combo_list?` + for (let i in search_data) { + if (search_data[i]) { + url += `${i}=${search_data[i]}&` + } + } + window.location.href = url +} +// SCRIPT END +// MOUNTED + +// MOUNTED END +// RETURN +const ret_ = { + pageJump, +} +// RETURN END +// OPTIONS +const opt = (g) => { + return { + type: 'type' in g ? g.type : '', + combo_type: 'combo_type' in g ? g.combo_type : '', + price: 'price' in g ? g.price : '', + sex: 'sex' in g ? g.sex : '', + order: 'order' in g ? g.order : 'zh', + search: 'search' in g ? g.search : '', + page: 'page' in g ? Number(g.page) : 1, + } +} +// OPTIONS END diff --git a/Laravel/resources/views/components/footer.blade.php b/Laravel/resources/views/components/footer.blade.php index daa6cc6..d36f379 100644 --- a/Laravel/resources/views/components/footer.blade.php +++ b/Laravel/resources/views/components/footer.blade.php @@ -1,3 +1,16 @@ diff --git a/Laravel/resources/views/components/header.blade.php b/Laravel/resources/views/components/header.blade.php index 130f277..5db9d4b 100644 --- a/Laravel/resources/views/components/header.blade.php +++ b/Laravel/resources/views/components/header.blade.php @@ -24,17 +24,17 @@
- -
+ +
-
女性
-
男性
-
入职
-
父母
-
高端
+ @foreach($public_config['search_tags'] as $tag) +
{{ $tag }}
+ @endforeach
diff --git a/Laravel/resources/views/home/home.blade.php b/Laravel/resources/views/home/home.blade.php index f56dcdc..195d227 100644 --- a/Laravel/resources/views/home/home.blade.php +++ b/Laravel/resources/views/home/home.blade.php @@ -12,10 +12,12 @@
+
+
+
部分合作医院&机构
+
+
+ @for($i = 0; $i < 8; $i++) +
+ +
+ @endfor +
+
+
+
+
+
+
+
+
部分合作企业&单位
+
+
+ @for($i = 0; $i < 8; $i++) +
+ +
+ @endfor +
+
+
+
+
+
@endsection diff --git a/Laravel/resources/views/home/home.css b/Laravel/resources/views/home/home.css index b1a661f..cf074c1 100644 --- a/Laravel/resources/views/home/home.css +++ b/Laravel/resources/views/home/home.css @@ -4,6 +4,35 @@ font-weight: bold; } +.hospital_list_wrapper { + display: flex; + align-items: center; + flex-wrap: wrap; + width: 1200px; + margin: 20px auto 0; + justify-content: space-around; +} + +.hospital_item_wrapper { + width: 280px; + height: 100px; + border: 1px solid #8c939d; + margin: 10px 5px; + overflow: hidden; +} + +.hospital_item_wrapper img { + width: 280px; + height: 100px; + display: block; + object-fit: contain; +} + + +.hospital_item_blank_wrapper { + width: 290px; +} + .hospital_address_text_wrapper { margin-left: 5px; width: calc(100% - 50px); @@ -76,7 +105,6 @@ .banner_menu_item_wrapper { padding-left: 30px; margin-top: 20px; - display: none; } .banner_wrapper { @@ -89,6 +117,7 @@ text-align: center; height: 50px; line-height: 50px; + display: none; } .banner_nav_group_wrapper { @@ -116,6 +145,14 @@ margin-top: 10px; } +.combo_original_price_wrapper { + font-size: 18px; + margin-left: 10px; + color: var(--style-color-4); + font-weight: 400; + text-decoration: line-through; +} + .combo_tag_wrapper { padding: 5px 10px; background: #eaeaea; diff --git a/Laravel/resources/views/layout/layout.blade.php b/Laravel/resources/views/layout/layout.blade.php index 009549a..0c1b859 100644 --- a/Laravel/resources/views/layout/layout.blade.php +++ b/Laravel/resources/views/layout/layout.blade.php @@ -1,87 +1,112 @@ - - - - - - - - - - - 体检平台 - - - - + + + + + + + + + + + + 体检平台 + + + +
- - -
- @include('components.header') -
-
- @yield('content') -
-
- @include('components.footer') -
-
-
+ + +
+ @include('components.header') +
+
+ @yield('content') +
+
+ @include('components.footer') +
+
+
diff --git a/Laravel/routes/web.php b/Laravel/routes/web.php index cd468de..f39a079 100644 --- a/Laravel/routes/web.php +++ b/Laravel/routes/web.php @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Route; */ Route::get('/Qrcode/combo', [\App\Http\Controllers\QrcodeController::class, 'combo_jump']); +Route::get('/combo_list', [\App\Http\Controllers\ViewController::class, 'combo_list']); Route::get('/combo', [\App\Http\Controllers\ViewController::class, 'combo']); Route::get('/', [\App\Http\Controllers\ViewController::class, 'home']);