更新 1. H5 首页 2. H5 相关的假数据

wenjuan
鹿和sa0ChunLuyu 1 year ago
parent 4f45b66fdc
commit 89a850d9b8

@ -21,6 +21,9 @@ class ApiMapController extends Controller
{
$base_url = env('APP_URL');
return [
'UserInfo' => $base_url . '/api/H5/User/info',
'ConfigVersion' => $base_url . '/api/H5/Config/version',
'ConfigConfig' => $base_url . '/api/H5/Config/config',
'DemoPay' => $base_url . '/api/Demo/pay',
'ApiMapTest' => $base_url . '/api/ApiMap/test',
];

@ -0,0 +1,78 @@
<?php
namespace App\Http\Controllers\API\H5;
use App\Http\Controllers\Controller;
use App\Services\ConfigService;
use Illuminate\Http\Request;
class HomeController extends Controller
{
// 获取配置更新时间
public function config_version()
{
$version = '2024-08-12 19:15:51';
return \Yz::Return(true, '获取成功', [
'version' => $version
]);
}
// 获取配置更新时间
public function config()
{
$config = [
'tip' => '海南现代妇女儿童医院体检中心欢迎您',
'logo' => '/assets/h5/logo.png',
'banner' => '/assets/h5/banner.png',
'order' => [[
'message' => '',
'name' => '个人体检预约',
'jump' => '/pages/main/choose/choose?type=self',
'icon' => '/assets/h5/gejianyuyue.png'
], [
'message' => '暂未开放',
'name' => '单位体检预约',
'jump' => '/pages/main/choose/choose?type=group',
'icon' => '/assets/h5/tuanjianyuyue.png'
]],
'check' => [[
'message' => '暂未开放',
'name' => '报告查询',
'desc' => '查体检报告',
'jump' => '/pages/main/check/check',
'icon' => '/assets/h5/baogao.png'
], [
'message' => '暂未开放',
'name' => '体检中心简介',
'desc' => '健康体检中心',
'jump' => '/pages/main/desc/desc',
'icon' => '/assets/h5/jianjie.png'
]],
'ad' => [
'title' => '6大体检套餐 5折',
'combo' => ['123', '234'],
'button' => '点击购买'
],
'more' => [[
'message' => '暂未开放',
'name' => '满意度调查',
'jump' => '/pages/main/myddc/myddc',
'icon' => '/assets/h5/manyidudiaocha.png'
], [
'message' => '暂未开放',
'name' => '体检注意事项',
'jump' => '/pages/main/zysx/zysx',
'icon' => '/assets/h5/zhuyishixiang.png'
], [
'message' => '暂未开放',
'name' => '常见问题',
'jump' => '/pages/main/cjwt/cjwt',
'icon' => '/assets/h5/changjianwenti.png'
]],
'color' => true,
];
return \Yz::Return(true, '获取成功', [
'config' => $config
]);
}
}

@ -0,0 +1,25 @@
<?php
namespace App\Http\Controllers\API\H5;
use App\Http\Controllers\Controller;
use App\Services\ConfigService;
use Illuminate\Http\Request;
class UserController extends Controller
{
// 获取配置更新时间
public function info(Request $request)
{
$openid = $request->post('openid');
$info = [
'name' => '演示用户',
'sex' => '2',
'count' => 1,
'openid' => $openid,
];
return \Yz::Return(true, '获取成功', [
'info' => $info
]);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

@ -0,0 +1 @@
const o=(o,t)=>{const c=o.__vccOpts||o;for(const[s,n]of t)c[s]=n;return c};export{o as _};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.more_item_name_wrapper[data-v-c39c8877]{font-weight:500;font-size:.8125rem;color:#323232;line-height:1;text-align:center;margin-top:.4375rem}.more_item_wrapper[data-v-c39c8877]{width:50%}.more_item_icon_wrapper[data-v-c39c8877]{width:2.59375rem;height:2.59375rem;margin:.46875rem auto 0}.more_item_icon_wrapper uni-image[data-v-c39c8877]{width:2.59375rem;height:2.59375rem;display:block;object-fit:contain}.more_item_name_wrapper[data-v-c39c8877]{font-weight:500;font-size:.8125rem;color:#323232;line-height:1;text-align:center;margin-top:.8125rem}.ad_button_wrapper[data-v-c39c8877]{width:5.125rem;height:1.5rem;background:#fff;border-radius:.75rem;font-weight:500;font-size:.78125rem;color:#35acb2;line-height:1.5rem;text-align:center;position:absolute;right:.875rem;bottom:.8125rem}.ad_title_wrapper[data-v-c39c8877]{font-weight:500;font-size:1.5625rem;color:#fff;line-height:1;margin-top:1.15625rem;margin-left:1.90625rem}.check_item_desc_wrapper[data-v-c39c8877]{font-weight:500;font-size:.625rem;color:#b7b7b7;line-height:1;text-align:center;margin-top:.34375rem}.check_item_name_wrapper[data-v-c39c8877]{font-weight:500;font-size:.8125rem;color:#323232;line-height:1;text-align:center;margin-top:.4375rem}.check_item_wrapper[data-v-c39c8877]{width:50%}.check_item_icon_wrapper[data-v-c39c8877]{width:2.59375rem;height:2.59375rem;margin:0 auto}.check_item_icon_wrapper uni-image[data-v-c39c8877]{width:2.59375rem;height:2.59375rem;display:block;object-fit:contain}.order_item_name_wrapper[data-v-c39c8877]{font-weight:500;font-size:.8125rem;color:#323232;line-height:1;text-align:center;margin-top:.8125rem}.order_item_wrapper[data-v-c39c8877]{width:50%;border-right:.03125rem #E8E8E8 solid}.order_item_wrapper[data-v-c39c8877]:last-child{border-right:none}.order_item_icon_wrapper[data-v-c39c8877]{width:2.4375rem;height:2.4375rem;margin:0 auto}.order_item_icon_wrapper uni-image[data-v-c39c8877]{width:2.4375rem;height:2.4375rem;display:block;object-fit:contain}.button_wrapper[data-v-c39c8877]{width:3rem;height:1.6875rem;background:#35acb2;border-radius:.84375rem;font-weight:500;font-size:.6875rem;color:#fff;text-align:center;line-height:1.6875rem;position:absolute;right:.3125rem;bottom:1.1875rem}.content_tip_wrapper[data-v-c39c8877]{font-weight:400;font-size:.75rem;color:#939393;line-height:1;margin-top:.71875rem}.user_name_wrapper[data-v-c39c8877]{font-weight:500;font-size:.8125rem;color:#323232;line-height:1}.user_sex_wrapper[data-v-c39c8877]{font-size:.6875rem;color:#939393;line-height:1;margin-left:.625rem}.user_info_wrapper[data-v-c39c8877]{display:flex;align-items:center}.logo_wrapper[data-v-c39c8877]{width:2.8125rem;height:2.8125rem;margin-left:.84375rem}.content_wrapper[data-v-c39c8877]{margin-left:.78125rem}.logo_wrapper uni-image[data-v-c39c8877]{width:2.8125rem;height:2.8125rem;display:block;object-fit:contain}.map_wrapper[data-v-c39c8877]{position:absolute;width:10.25rem;height:1.6875rem;background:#35acb2;border-radius:.84375rem;top:-2.25rem;right:0;display:flex;align-items:center;justify-content:center}.map_icon_wrapper[data-v-c39c8877]{width:.78125rem;height:.875rem}.map_icon_wrapper uni-image[data-v-c39c8877]{width:.78125rem;height:.875rem;display:block;object-fit:contain}.map_name_wrapper[data-v-c39c8877]{height:.6875rem;font-weight:500;font-size:.6875rem;color:#fff;line-height:1;padding-right:.53125rem;border-right:.03125rem solid #ffffff;margin-left:.4375rem}.map_long_wrapper[data-v-c39c8877]{font-weight:500;font-size:.6875rem;color:#fff;line-height:1;margin-left:.5625rem}.more_item_wrapper[data-v-c39c8877]{width:5.3125rem;height:4.90625rem;background:#fff;border-radius:.28125rem}.more_wrapper[data-v-c39c8877]{width:21.21875rem;margin:.46875rem auto 0;display:flex;align-items:center;justify-content:space-around}.ad_wrapper[data-v-c39c8877]{position:relative;overflow:hidden;width:21.21875rem;height:4.84375rem;background:linear-gradient(-90deg,#b4dada,#13848c 90%);border-radius:.3125rem;margin:.46875rem auto 0}.check_wrapper[data-v-c39c8877]{width:21.1875rem;height:6.71875rem;background:#fff;border-radius:.3125rem;margin:.46875rem auto 0;display:flex;align-items:center;justify-content:space-around}.bannder_wrapper[data-v-c39c8877]{width:100%;height:14.25rem;position:relative;z-index:1}.bannder_wrapper uni-image[data-v-c39c8877]{width:100%;height:14.25rem;display:block;object-fit:contain}.user_wrapper[data-v-c39c8877]{width:21.1875rem;height:2.34375rem;margin:0 auto;position:relative}.user_box_wrapper[data-v-c39c8877]{z-index:2;position:absolute;width:21.1875rem;height:4.8125rem;background:#fff;border-radius:.3125rem;bottom:0;display:flex;align-items:center}.order_wrapper[data-v-c39c8877]{width:21.1875rem;height:6.09375rem;background:#fff;border-radius:.3125rem;margin:.46875rem auto 0;display:flex;align-items:center;justify-content:space-around}

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
import{$ as a,g as t,e,s as i,f as n,h as o}from"./index-DqaBDANc.js";const s=a.token;function l(){return t(s)}const d=e("counter",{state:()=>({api_map:{},count:0,loading:0}),actions:{loadingStart(){this.loading++},loadingDone(){this.loading--,this.loading<0&&(this.loading=0)}}}),p=async({url:a,data:t={}},e)=>{const s=d();let p={};if("delete_token"in e&&e.delete_token)p.Authorization&&delete p.Authorization;else{const a=l()?l():"";p.Authorization="Bearer "+a}"delete_appid"in e&&e.delete_appid?t.UNIAPP_APPID&&delete t.UNIAPP_APPID:t.UNIAPP_APPID=e.appid,"delete_apptype"in e&&e.delete_apptype?t.UNIAPP_APPTYPE&&delete t.UNIAPP_APPTYPE:t.UNIAPP_APPTYPE=e.app_type,e.loading&&(s.loadingStart(),1===s.loading&&i({title:e.loading_text}));const r=await n({url:a,method:"POST",data:t,header:p});return e.loading&&(s.loadingDone(),0===s.loading&&o()),r&&""!=r.data?r.data:(uni.$lu.toast("请求发生错误"),!1)};a.config.api_map_url,a.config.base_assets_url;const r=async(t,e={},i={})=>{const n={...a,...i},o=d();if(!(t in o.api_map)){const a=await p({url:n.config.api_map_url},n);if(!a.status)return uni.$lu.toast("获取接口失败"),!1;o.api_map=a.data.list}return t in o.api_map?await p({url:o.api_map[t],data:e},n):(uni.$lu.toast(`接口不存在 [${t}]`),!1)},u=(t,e,i={},n=(()=>{}))=>{if(t){const o={...a,...i};if(t.status!=o.success_code)return uni.$lu.toast(t.message),void n();e()}};export{r as $,u as a};

@ -0,0 +1 @@
.tip_wrapper[data-v-1e614515]{height:100vh;width:100%;display:flex;align-items:center;justify-content:center}

@ -0,0 +1 @@
import{c as a,w as s,i as e,b as o,f as t,e as n}from"./index-BfysUrXq.js";const r={__name:"combo",setup:r=>(r,l)=>{const c=e;return o(),a(c,null,{default:s((()=>[t(" Combo "),n(c,{class:"blank_wrapper"})])),_:1})}};export{r as default};

@ -1 +0,0 @@
import{c as a,w as s,i as o,o as e,a as t,b as n}from"./index-DqaBDANc.js";import"./index.BjiQWzit.js";const r={__name:"combo",setup:r=>(r,l)=>{const m=o;return e(),a(m,null,{default:s((()=>[t(" Combo "),n(m,{class:"blank_wrapper"})])),_:1})}};export{r as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
import{u as a,o as e,c as s,w as r,g as l,$ as c,a as p,i as t,b as n,d as _,e as o,f as u,t as i,h as d,j as f,r as m,F as w,k as A,l as g,s as x,n as k}from"./index-BfysUrXq.js";import{_ as I}from"./_plugin-vue_export-helper.BCo6x5W8.js";const h=I({__name:"index",setup(I){const h=a(),v=["/pages/main/index/index","/pages/main/order/order","/pages/main/combo/combo"],b=a=>{"message"in a&&a.message?uni.$lu.toast(a.message):-1!==a.jump.indexOf("http")?window.location.href=a.jump:v.includes(a.jump)?x({url:a.jump}):k({url:a.jump})};return e((()=>{(async()=>{const a=l("OPENID"),e=await c("UserInfo",{openid:a});p(e,(()=>{h.user=e.data.info}))})()})),(a,e)=>{const l=A,c=t;return n(),s(c,null,{default:r((()=>[_(h).config?(n(),s(c,{key:0},{default:r((()=>[o(c,{class:"bannder_wrapper"},{default:r((()=>[o(l,{src:_(g)(_(h).config.banner)},null,8,["src"])])),_:1}),_(h).user?(n(),s(c,{key:0,class:"user_wrapper"},{default:r((()=>[o(c,{class:"user_box_wrapper"},{default:r((()=>[o(c,{class:"map_wrapper"},{default:r((()=>[o(c,{class:"map_icon_wrapper"},{default:r((()=>[o(l,{src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAA4CAMAAACIelvlAAAArlBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8tivQqAAAAOXRSTlMA/AX4IePn1s6cagn1hRPeXfHtxbq1pUIPC4wb6WIl2tLBWE8Xvq2gfm5TS0g+NjEryZY5qpCxenS5WJuDAAAC7klEQVRIx42W15KqQBCGBxii5KgIAiIIEszp/V/sFOvZlR5U7Euor/rvPIgweoo9yRdzJ7GSzMlFJWzwlEYfbIKPaXnOE4HXWFbjheTkS2mLJ++JWVuKmRBxhsxQd4piZIOLhEyUtu+Y6W6j2AF1J4zinCLdzV668BSbN0mgY8zYLo5DR/S88mPm/sYYQfFWJIGXbgQIaDK/3swhMtdd7v7R2PUG+FltXJb6jFDsupr2Iq8P7H3UNL955mCn8Mw4wgjXxW/o6tIGxNscOKn6aB7V87X7VxYpzaPhFrfE/A4xsxJ3CN24AfUdQnHiUe106RZJUGYkWJYQmQMm2ywQmmwLftiIfqnrpW8HJBPfakSvUpElEhOvpQarKvZKl0y+dpaQupOcAPqIFQ9PHxNa+RFEgtxHuFEsAxSMXXv0X1tUJw74Maw1ajcidM5dwl7LYkIDwzuoli6wIfmiP7azo8ID1VqC9GJvALWWroKpkPbgN7dH0hnqouyaBgthacH4hQ6hgNiLBzfCENGVvQy9VM9QHr1BCqtKh6P6yF7CPWX04ibA8DO0JZOsHbx+xirYG7KQo3lbJAYs1g0/kUUhAN2mfUCzuX7igOsg13+lTXDowBKw4u2nWBGxSnJpR/8Q2/LSBQoKvemKFVoU2fvX6ti2x7SwTfiLSfRtlxTPNYdL2BVF147JH6zYqD8hXvfMYAEZHGcMvsr/Zx9NycU3vvxoHGbyV3vMXq5+S9z6sfwFISjbv8YA8/9e1qFSe/coTJhvZHVOwCIfX+LwUJ61sWyR51JN4VEaHqR6igibL90PKWDFdDU8yVi/BNS79X3qKjJkFtIleI1wpxC/fsDspOdQw2kIFzR6w4Qn7oUPFxCktjBnKdLHSceQIHPgcuQTYUkSw4eJxvRqHoGHyGtmnh60p6roXK/QqKn1gZcfhBGfva7m40yjCMyPKuvajhF/I6d0F8RMrs+RGrPZ9pYZpiPtJuhrm9YiHx+8lw/Kf38vXJdPL+iaAAAAAElFTkSuQmCC"})])),_:1}),o(c,{class:"map_name_wrapper"},{default:r((()=>[u("秀英院区")])),_:1}),o(c,{class:"map_long_wrapper"},{default:r((()=>[u("1366.34km")])),_:1})])),_:1}),o(c,{class:"logo_wrapper"},{default:r((()=>[o(l,{src:_(g)(_(h).config.logo)},null,8,["src"])])),_:1}),o(c,{class:"content_wrapper"},{default:r((()=>[o(c,{class:"user_info_wrapper"},{default:r((()=>[o(c,{class:"user_name_wrapper"},{default:r((()=>[u(i(_(h).user.name),1)])),_:1}),o(c,{class:"user_sex_wrapper"},{default:r((()=>[u(i(1===Number(_(h).user.sex)?"先生":"女士"),1)])),_:1})])),_:1}),o(c,{class:"content_tip_wrapper"},{default:r((()=>[u(i(_(h).config.tip),1)])),_:1})])),_:1}),Number(_(h).user.count)>1?(n(),s(c,{key:0,class:"button_wrapper"},{default:r((()=>[u("切换")])),_:1})):d("",!0)])),_:1})])),_:1})):d("",!0),o(c,{class:"order_wrapper"},{default:r((()=>[(n(!0),f(w,null,m(_(h).config.order,((a,e)=>(n(),s(c,{onClick:e=>b(a),class:"order_item_wrapper",key:e},{default:r((()=>[o(c,{class:"order_item_icon_wrapper"},{default:r((()=>[o(l,{src:_(g)(a.icon)},null,8,["src"])])),_:2},1024),o(c,{class:"order_item_name_wrapper"},{default:r((()=>[u(i(a.name),1)])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:1}),o(c,{class:"check_wrapper"},{default:r((()=>[(n(!0),f(w,null,m(_(h).config.check,((a,e)=>(n(),s(c,{onClick:e=>b(a),class:"check_item_wrapper",key:e},{default:r((()=>[o(c,{class:"check_item_icon_wrapper"},{default:r((()=>[o(l,{src:_(g)(a.icon)},null,8,["src"])])),_:2},1024),o(c,{class:"check_item_name_wrapper"},{default:r((()=>[u(i(a.name),1)])),_:2},1024),o(c,{class:"check_item_desc_wrapper"},{default:r((()=>[u(i(a.desc),1)])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:1}),_(h).config.ad.title?(n(),s(c,{key:1,class:"ad_wrapper"},{default:r((()=>[o(c,{class:"ad_title_wrapper"},{default:r((()=>[u(i(_(h).config.ad.title),1)])),_:1}),o(c,{class:"ad_button_wrapper"},{default:r((()=>[u(i(_(h).config.ad.button),1)])),_:1})])),_:1})):d("",!0),o(c,{class:"more_wrapper"},{default:r((()=>[(n(!0),f(w,null,m(_(h).config.more,((a,e)=>(n(),s(c,{onClick:e=>b(a),class:"more_item_wrapper",key:e},{default:r((()=>[o(c,{class:"more_item_icon_wrapper"},{default:r((()=>[o(l,{src:_(g)(a.icon)},null,8,["src"])])),_:2},1024),o(c,{class:"more_item_name_wrapper"},{default:r((()=>[u(i(a.name),1)])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:1})])),_:1})):d("",!0)])),_:1})}}},[["__scopeId","data-v-c39c8877"]]);export{h as default};

@ -1 +0,0 @@
import{c as a,w as s,i as e,o as n,a as d,b as t,n as l,d as r}from"./index-DqaBDANc.js";import"./index.BjiQWzit.js";const i={__name:"index",setup:i=>(i,o)=>{const p=r,u=e;return n(),a(u,null,{default:s((()=>[d(" Index "),t(p,{onClick:o[0]||(o[0]=a=>{l({url:"/pages/main/dev/dev"})})},{default:s((()=>[d("开发测试")])),_:1}),t(u,{class:"blank_wrapper"})])),_:1})}};export{i as default};

@ -0,0 +1 @@
import{m as e,o as a,c as s,w as t,q as o,s as p,i as n,b as r,f as i,t as d}from"./index-BfysUrXq.js";import{_ as l}from"./_plugin-vue_export-helper.BCo6x5W8.js";const u=l({__name:"login",props:{openid:{type:String,default:""}},setup(l){const u=l,_=e("授权登录中,请稍候...");return a((()=>{(()=>{let e="";u.openid&&(e=decodeURIComponent(u.openid)),e?(o("OPENID",e),p({url:"/pages/main/index/index"})):_.value="为获取到授权信息,请从小程序进入"})()})),(e,a)=>{const o=n;return r(),s(o,{class:"tip_wrapper"},{default:t((()=>[i(d(_.value),1)])),_:1})}}},[["__scopeId","data-v-1e614515"]]);export{u as default};

@ -0,0 +1 @@
import{c as a,w as s,i as e,b as r,f as t,e as n}from"./index-BfysUrXq.js";const l={__name:"order",setup:l=>(l,o)=>{const d=e;return r(),a(d,null,{default:s((()=>[t(" Order "),n(d,{class:"blank_wrapper"})])),_:1})}};export{l as default};

@ -1 +0,0 @@
import{c as a,w as s,i as r,o as e,a as t,b as n}from"./index-DqaBDANc.js";import"./index.BjiQWzit.js";const o={__name:"order",setup:o=>(o,d)=>{const l=r;return e(),a(l,null,{default:s((()=>[t(" Order "),n(l,{class:"blank_wrapper"})])),_:1})}};export{o as default};

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="/h5/assets/uni.943b8fef.css">
<link rel="stylesheet" href="/h5/assets/uni.86c29f22.css">
<meta charset="UTF-8" />
<script>
@ -13,8 +13,8 @@
</script><title>海南现代妇女儿童医院</title>
<!--preload-links-->
<!--app-context-->
<script type="module" crossorigin src="/h5/assets/index-DqaBDANc.js"></script>
<link rel="stylesheet" crossorigin href="/h5/assets/index-BPRTVkjj.css">
<script type="module" crossorigin src="/h5/assets/index-BfysUrXq.js"></script>
<link rel="stylesheet" crossorigin href="/h5/assets/index-BbhJ6I7c.css">
</head>
<body>
<div id="app"><!--app-html--></div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -2,6 +2,10 @@
use Illuminate\Support\Facades\Route;
Route::any("/api/H5/User/info", [\App\Http\Controllers\API\H5\UserController::class, 'info']);
Route::any("/api/H5/Config/version", [\App\Http\Controllers\API\H5\HomeController::class, 'config_version']);
Route::any("/api/H5/Config/config", [\App\Http\Controllers\API\H5\HomeController::class, 'config']);
Route::any("/api/Demo/pay_back", [\App\Http\Controllers\API\DemoController::class, 'pay_back']);
Route::any("/api/Demo/pay", [\App\Http\Controllers\API\DemoController::class, 'pay']);

@ -1,61 +1,133 @@
<script>
export default {
onLaunch: function() {
console.log(`\n %c 鹿和 %c https://sa0.online/ \n\n`, 'color: #ffffff; background: #fd6b60; padding:5px 0;',
'color: #fd6b60;background: #ffffff; padding:5px 0;')
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import '@/uni_modules/uni-scss/index.scss';
/* #ifndef APP-NVUE */
@import '@/static/customicons.css';
//
page {
background-color: #f5f5f5;
}
/* #endif */
.bottom_blank_wrapper {
height: calc(20rpx + var(--safe-area-inset-bottom));
}
.top_blank_wrapper::after {
content: ".";
}
.top_blank_wrapper {
height: 0;
width: 100%;
opacity: 0;
}
.navbar_blank_wrapper {
height: calc(100rpx + var(--safe-area-inset-top));
}
.input_line_wrapper {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
}
.input_line_tag_wrapper {
width: 200rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
background: #f9f9f9;
font-size: 26rpx;
font-weight: bold;
border-radius: 6rpx;
}
.input_line_input_wrapper {
width: 500rpx;
}
<script setup>
/**
* name
* usersa0ChunLuyu
* date2024年8月7日 20:05:05
*/
import {
ref
} from 'vue'
import {
$api,
$response,
} from '@/api'
import {
onShow,
onHide
} from '@dcloudio/uni-app'
import {
useStore
} from '@/store'
const $store = useStore()
const setConfigStore = () => {
const config_str = uni.getStorageSync('CONFIG_CONFIG')
const config = JSON.parse(config_str)
$store.config = config
if (!config.color) {
document.body.classList.toggle('grayscale');
}
const openid_str = uni.getStorageSync('OPENID')
let url = window.location.href
if (!openid_str) {
if (url.indexOf('/pages/main/login/login') === -1) {
uni.redirectTo({
url: '/pages/main/login/login'
})
}
}
}
const getConfigConfig = async () => {
const response = await $api('ConfigConfig')
$response(response, () => {
uni.setStorageSync('CONFIG_CONFIG', JSON.stringify(response.data.config))
setConfigStore()
})
}
const getConfigVersion = async () => {
const response = await $api('ConfigVersion')
$response(response, () => {
const config_version = uni.getStorageSync('CONFIG_VERSION')
let get_config = false
if (!config_version) {
get_config = true
} else {
if (config_version !== response.data.version) {
get_config = true
}
}
uni.setStorageSync('CONFIG_VERSION', response.data.version)
if (!!get_config) {
getConfigConfig()
} else {
setConfigStore()
}
})
}
onShow(() => {
console.log(`\n %c 鹿和 %c https://sa0.online/ \n\n`, 'color: #ffffff; background: #fd6b60; padding:5px 0;',
'color: #fd6b60;background: #ffffff; padding:5px 0;')
getConfigVersion()
})
</script>
<style lang="scss">
/*每个页面公共css */
@import '@/uni_modules/uni-scss/index.scss';
/* #ifndef APP-NVUE */
@import '@/static/customicons.css';
.grayscale {
filter: grayscale(100%);
}
//
page {
background-color: #f5f5f5;
}
/* #endif */
.bottom_blank_wrapper {
height: calc(20rpx + var(--safe-area-inset-bottom));
}
.top_blank_wrapper::after {
content: ".";
}
.top_blank_wrapper {
height: 0;
width: 100%;
opacity: 0;
}
.navbar_blank_wrapper {
height: calc(100rpx + var(--safe-area-inset-top));
}
.input_line_wrapper {
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: space-between;
}
.input_line_tag_wrapper {
width: 200rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
background: #f9f9f9;
font-size: 26rpx;
font-weight: bold;
border-radius: 6rpx;
}
.input_line_input_wrapper {
width: 500rpx;
}
</style>

@ -26,6 +26,13 @@
"navigationBarTitleText": "开发测试",
"navigationStyle": "custom"
}
},
{
"path": "pages/main/login/login",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
}
],
"tabBar": {
@ -35,18 +42,18 @@
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/main/index/index",
"iconPath": "static/tabbar/tof.png",
"selectedIconPath": "static/tabbar/ton.png",
"iconPath": "static/tabbar/shouye_f.png",
"selectedIconPath": "static/tabbar/shouye_o.png",
"text": "首页"
}, {
"pagePath": "pages/main/combo/combo",
"iconPath": "static/tabbar/tof.png",
"selectedIconPath": "static/tabbar/ton.png",
"iconPath": "static/tabbar/taocan_f.png",
"selectedIconPath": "static/tabbar/taocan_o.png",
"text": "套餐"
}, {
"pagePath": "pages/main/order/order",
"iconPath": "static/tabbar/tof.png",
"selectedIconPath": "static/tabbar/ton.png",
"iconPath": "static/tabbar/dingdan_f.png",
"selectedIconPath": "static/tabbar/dingdan_o.png",
"text": "订单"
}]
},

@ -8,25 +8,432 @@
ref
} from 'vue'
import {
$api,
$image,
$response
} from '@/api'
import {
onShow
} from '@dcloudio/uni-app'
import {
useStore
} from '@/store'
const $store = useStore()
const toDev = () => {
uni.navigateTo({
url: '/pages/main/dev/dev'
const getUserInfo = async () => {
const openid = uni.getStorageSync('OPENID')
const response = await $api('UserInfo', {
openid: openid
})
$response(response, () => {
$store.user = response.data.info
})
}
const switch_arr = [
'/pages/main/index/index',
'/pages/main/order/order',
'/pages/main/combo/combo',
]
const buttonClick = (info) => {
if ('message' in info && !!info.message) {
uni.$lu.toast(info.message)
} else {
if (info.jump.indexOf('http') !== -1) {
window.location.href = info.jump
} else {
if (switch_arr.includes(info.jump)) {
uni.switchTab({
url: info.jump
})
} else {
uni.navigateTo({
url: info.jump
})
}
}
}
}
onShow(() => {
getUserInfo()
})
</script>
<template>
<view>
Index
<button @click="toDev()"></button>
<view class="blank_wrapper"></view>
<view v-if="!!$store.config">
<view class="bannder_wrapper">
<image :src="$image($store.config.banner)"></image>
</view>
<view v-if="!!$store.user" class="user_wrapper">
<view class="user_box_wrapper">
<view class="map_wrapper">
<view class="map_icon_wrapper">
<image src="@/static/assets/dingwei.png"></image>
</view>
<view class="map_name_wrapper">秀英院区</view>
<view class="map_long_wrapper">1366.34km</view>
</view>
<view class="logo_wrapper">
<image :src="$image($store.config.logo)"></image>
</view>
<view class="content_wrapper">
<view class="user_info_wrapper">
<view class="user_name_wrapper">{{ $store.user.name }}</view>
<view class="user_sex_wrapper">
{{ Number($store.user.sex) === 1 ? '先生' : '女士' }}
</view>
</view>
<view class="content_tip_wrapper">{{ $store.config.tip }}</view>
</view>
<view v-if="Number($store.user.count) > 1" class="button_wrapper"></view>
</view>
</view>
<view class="order_wrapper">
<view @click="buttonClick(i)" class="order_item_wrapper" v-for="(i,k) in $store.config.order" :key="k">
<view class="order_item_icon_wrapper">
<image :src="$image(i.icon)"></image>
</view>
<view class="order_item_name_wrapper">
{{ i.name }}
</view>
</view>
</view>
<view class="check_wrapper">
<view @click="buttonClick(i)" class="check_item_wrapper" v-for="(i,k) in $store.config.check" :key="k">
<view class="check_item_icon_wrapper">
<image :src="$image(i.icon)"></image>
</view>
<view class="check_item_name_wrapper">
{{ i.name }}
</view>
<view class="check_item_desc_wrapper">
{{ i.desc }}
</view>
</view>
</view>
<view v-if="!!$store.config.ad.title" class="ad_wrapper">
<view class="ad_title_wrapper">{{ $store.config.ad.title }}</view>
<view class="ad_button_wrapper">{{ $store.config.ad.button }}</view>
</view>
<view class="more_wrapper">
<view @click="buttonClick(i)" class="more_item_wrapper" v-for="(i,k) in $store.config.more" :key="k">
<view class="more_item_icon_wrapper">
<image :src="$image(i.icon)"></image>
</view>
<view class="more_item_name_wrapper">
{{ i.name }}
</view>
</view>
</view>
</view>
</view>
</template>
<style scoped>
.more_item_name_wrapper {
font-weight: 500;
font-size: 26rpx;
color: #323232;
line-height: 1;
text-align: center;
margin-top: 14rpx;
}
.more_item_wrapper {
width: 50%;
}
.more_item_icon_wrapper {
width: 83rpx;
height: 83rpx;
margin: 15rpx auto 0;
}
.more_item_icon_wrapper image {
width: 83rpx;
height: 83rpx;
display: block;
object-fit: contain;
}
.more_item_name_wrapper {
font-weight: 500;
font-size: 26rpx;
color: #323232;
line-height: 1;
text-align: center;
margin-top: 26rpx;
}
.ad_button_wrapper {
width: 164rpx;
height: 48rpx;
background: #FFFFFF;
border-radius: 24rpx;
font-weight: 500;
font-size: 25rpx;
color: #35ACB2;
line-height: 48rpx;
text-align: center;
position: absolute;
right: 28rpx;
bottom: 26rpx;
}
.ad_title_wrapper {
font-weight: 500;
font-size: 50rpx;
color: #FFFFFF;
line-height: 1;
margin-top: 37rpx;
margin-left: 61rpx;
}
.check_item_desc_wrapper {
font-weight: 500;
font-size: 20rpx;
color: #B7B7B7;
line-height: 1;
text-align: center;
margin-top: 11rpx;
}
.check_item_name_wrapper {
font-weight: 500;
font-size: 26rpx;
color: #323232;
line-height: 1;
text-align: center;
margin-top: 14rpx;
}
.check_item_wrapper {
width: 50%;
}
.check_item_icon_wrapper {
width: 83rpx;
height: 83rpx;
margin: 0 auto;
}
.check_item_icon_wrapper image {
width: 83rpx;
height: 83rpx;
display: block;
object-fit: contain;
}
.order_item_name_wrapper {
font-weight: 500;
font-size: 26rpx;
color: #323232;
line-height: 1;
text-align: center;
margin-top: 26rpx;
}
.order_item_wrapper {
width: 50%;
border-right: 1rpx #E8E8E8 solid;
}
.order_item_wrapper:last-child {
border-right: none;
}
.order_item_icon_wrapper {
width: 78rpx;
height: 78rpx;
margin: 0 auto;
}
.order_item_icon_wrapper image {
width: 78rpx;
height: 78rpx;
display: block;
object-fit: contain;
}
.button_wrapper {
width: 96rpx;
height: 54rpx;
background: #35ACB2;
border-radius: 27rpx;
font-weight: 500;
font-size: 22rpx;
color: #FFFFFF;
text-align: center;
line-height: 54rpx;
position: absolute;
right: 10rpx;
bottom: 38rpx;
}
.content_tip_wrapper {
font-weight: 400;
font-size: 24rpx;
color: #939393;
line-height: 1;
margin-top: 23rpx;
}
.user_name_wrapper {
font-weight: 500;
font-size: 26rpx;
color: #323232;
line-height: 1;
}
.user_sex_wrapper {
font-size: 22rpx;
color: #939393;
line-height: 1;
margin-left: 20rpx;
}
.user_info_wrapper {
display: flex;
align-items: center;
}
.logo_wrapper {
width: 90rpx;
height: 90rpx;
margin-left: 27rpx;
}
.content_wrapper {
margin-left: 25rpx;
}
.logo_wrapper image {
width: 90rpx;
height: 90rpx;
display: block;
object-fit: contain;
}
.map_wrapper {
position: absolute;
width: 328rpx;
height: 54rpx;
background: #35ACB2;
border-radius: 27rpx;
top: -72rpx;
right: 0;
display: flex;
align-items: center;
justify-content: center;
}
.map_icon_wrapper {
width: 25rpx;
height: 28rpx;
}
.map_icon_wrapper image {
width: 25rpx;
height: 28rpx;
display: block;
object-fit: contain;
}
.map_name_wrapper {
height: 22rpx;
font-weight: 500;
font-size: 22rpx;
color: #FFFFFF;
line-height: 1;
padding-right: 17rpx;
border-right: 1rpx solid #ffffff;
margin-left: 14rpx;
}
.map_long_wrapper {
font-weight: 500;
font-size: 22rpx;
color: #FFFFFF;
line-height: 1;
margin-left: 18rpx;
}
.more_item_wrapper {
width: 170rpx;
height: 157rpx;
background: #FFFFFF;
border-radius: 9rpx;
}
.more_wrapper {
width: 679rpx;
margin: 15rpx auto 0;
display: flex;
align-items: center;
justify-content: space-around;
}
.ad_wrapper {
position: relative;
overflow: hidden;
width: 679rpx;
height: 155rpx;
background: linear-gradient(-90deg, #B4DADA 0%, #13848C 90%);
border-radius: 10rpx;
margin: 15rpx auto 0;
}
.check_wrapper {
width: 678rpx;
height: 215rpx;
background: #FFFFFF;
border-radius: 10rpx;
margin: 15rpx auto 0;
display: flex;
align-items: center;
justify-content: space-around;
}
.bannder_wrapper {
width: 100%;
height: 456rpx;
position: relative;
z-index: 1;
}
.bannder_wrapper image {
width: 100%;
height: 456rpx;
display: block;
object-fit: contain;
}
.user_wrapper {
width: 678rpx;
height: 75rpx;
margin: 0 auto;
position: relative;
}
.user_box_wrapper {
z-index: 2;
position: absolute;
width: 678rpx;
height: 154rpx;
background: #FFFFFF;
border-radius: 10rpx;
bottom: 0;
display: flex;
align-items: center;
}
.order_wrapper {
width: 678rpx;
height: 195rpx;
background: #FFFFFF;
border-radius: 10rpx;
margin: 15rpx auto 0;
display: flex;
align-items: center;
justify-content: space-around;
}
</style>

@ -0,0 +1,55 @@
<script setup>
/**
* name
* usersa0ChunLuyu
* date2024年8月12日 19:47:35
*/
import {
ref
} from 'vue'
import {
$response
} from '@/api'
import {
onShow
} from '@dcloudio/uni-app'
const $props = defineProps({
openid: {
type: String,
default: ''
}
});
const tip_str = ref('授权登录中,请稍候...')
const checkOpenid = () => {
let openid = ''
if (!!$props.openid) {
openid = decodeURIComponent($props.openid)
}
if (!!openid) {
uni.setStorageSync('OPENID', openid)
uni.switchTab({
url: "/pages/main/index/index"
})
} else {
tip_str.value = '为获取到授权信息,请从小程序进入'
}
}
onShow(() => {
checkOpenid()
})
</script>
<template>
<view class="tip_wrapper">
{{ tip_str }}
</view>
</template>
<style scoped>
.tip_wrapper {
height: 100vh;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -4,6 +4,8 @@ import {
export const useStore = defineStore('counter', {
state: () => ({
user: false,
config: false,
api_map: {},
count: 0,
loading: 0,

Loading…
Cancel
Save