diff --git a/Laravel/app/Http/Controllers/API/ApiMapController.php b/Laravel/app/Http/Controllers/API/ApiMapController.php
index b5ff84c..6d3218b 100644
--- a/Laravel/app/Http/Controllers/API/ApiMapController.php
+++ b/Laravel/app/Http/Controllers/API/ApiMapController.php
@@ -83,7 +83,8 @@ class ApiMapController extends Controller
'UserHunjian' => $base_url . '/api/H5/User/hunjian', // 婚检人员信息
'hunjianBySFZ' => $base_url . '/api/H5/hunjianBySFZ', // 婚检人员信息
'CheckedSignIn' => $base_url . '/api/H5/CheckedSignIn', // 检后签到
-
+ 'SendMsgCode' => $base_url . '/api/H5/SendMsgCode', // 发送验证码
+ 'CheckMsgCode' => $base_url . '/api/H5/CheckMsgCode', // 验证验证码
];
}
diff --git a/Laravel/app/Http/Controllers/API/AspNetZhuanController.php b/Laravel/app/Http/Controllers/API/AspNetZhuanController.php
index bf4e341..8dda90b 100644
--- a/Laravel/app/Http/Controllers/API/AspNetZhuanController.php
+++ b/Laravel/app/Http/Controllers/API/AspNetZhuanController.php
@@ -71,7 +71,19 @@ class AspNetZhuanController extends Controller
$content=$time." 健康体检。请提前10分钟凭身份证到".$yy_name.$keshi."签到。建议体检前3天清淡饮食、禁烟酒。体检当天需禁食禁水,空腹6小时以上";
$url=self::$BaseUrl."/tuisong.aspx?yyid=".$yyid."&type=8&mobile=".$tel."&msg1=".urlencode($name)."&msg2=".urlencode($content);
self::get($url,"短信发送");
-
+ }
+ //发送验证码
+ public static function SendYanZhengMaCode($r_yyid,$tel,$code){
+ if($r_yyid==1){
+ $yyid=6;
+ $yy_name="现代妇儿秀英院区";
+ }
+ if($r_yyid==4){
+ $yyid=2;
+ $yy_name="现代妇儿府城院区";
+ }
+ $url=self::$BaseUrl."/tuisong.aspx?yyid=".$yyid."&type=13&mobile=".$tel."&msg1=".urlencode($code);
+ self::get($url,"短信发送");
}
//获取优惠卷类型
diff --git a/Laravel/app/Http/Controllers/API/H5/UserController.php b/Laravel/app/Http/Controllers/API/H5/UserController.php
index 6c4a0cb..1a37e70 100644
--- a/Laravel/app/Http/Controllers/API/H5/UserController.php
+++ b/Laravel/app/Http/Controllers/API/H5/UserController.php
@@ -212,7 +212,9 @@ class UserController extends Controller
if(!!$hunjianLog){
$person_info=json_decode($hunjianLog->content,true);
-
+ unset($person_info['详细地址省市区']);
+ unset($person_info['详细地址']);
+ unset($person_info['邮政编码']);
}
return \Yz::Return(true, '获取成功', [
diff --git a/Laravel/app/Http/Controllers/API/SendMsgCodeController.php b/Laravel/app/Http/Controllers/API/SendMsgCodeController.php
new file mode 100644
index 0000000..a0b540b
--- /dev/null
+++ b/Laravel/app/Http/Controllers/API/SendMsgCodeController.php
@@ -0,0 +1,54 @@
+where('mobile', $mobile)->where('created_at', '>=', date('Y-m-d H:i:s', time() - 60))->first();
+ if ($code) {
+ return \Yz::echoError1("操作太频繁,请稍后再试");
+ }
+ $code = rand(100000, 999999);
+ //获取当前时间5分钟后的日期时间
+ $end_time = date('Y-m-d H:i:s', time() + 300);
+ $i=DB::table('send_code')->insert([
+ 'mobile' => $mobile,
+ 'code' => $code,
+ 'created_at' => date('Y-m-d H:i:s'),
+ 'end_time' => $end_time
+ ]);
+ if ($i) {
+ $aspnet=new AspNetZhuanController();
+ $aspnet::SendYanZhengMaCode(1,$mobile,$code);
+ return \Yz::Return(true,"发送成功",[]);
+ } else {
+ return \Yz::echoError1("发送失败");
+ }
+
+ }
+ //验证验证码
+ public function CheckMsgCode(){
+ $mobile = request('mobile');
+ $code = request('code');
+ $u = DB::table('send_code')
+ ->where('mobile', $mobile)
+ ->where('code', $code)
+ ->where('end_time', '>=', date('Y-m-d H:i:s'))
+ ->where(['status' => 1])
+ ->update(['status' => 2]);
+ if($u){
+ return \Yz::Return(true,"验证成功",['data'=>$code]);
+ }else{
+ return \Yz::echoError1("验证码无效");
+ }
+ }
+}
diff --git a/Laravel/app/Http/Controllers/TestController.php b/Laravel/app/Http/Controllers/TestController.php
index 10d0740..4dcac6f 100644
--- a/Laravel/app/Http/Controllers/TestController.php
+++ b/Laravel/app/Http/Controllers/TestController.php
@@ -57,43 +57,9 @@ class TestController extends Controller
//--------------
$aspnet=new AspNetZhuanController();
- //医生排班
- $res = $aspnet->GetDoctorDateList([
- "yyid" => 6,
- "data" => ["2024-12-24",
- "2024-12-25",
- "2024-12-26",
- "2024-12-27",
- "2024-12-28",
- "2024-12-29",
- "2024-12-30",
- "2024-12-31",
- "2025-01-01",
- "2025-01-02",
- "2025-01-03",
- "2025-01-04",
- "2025-01-05",
- "2025-01-06",
- "2025-01-07",
- "2025-01-08",
- "2025-01-09",
- "2025-01-10",
- "2025-01-11",
- "2025-01-12",
- "2025-01-13",
- "2025-01-14",
- "2025-01-15",
- "2025-01-16",
- "2025-01-17",
- "2025-01-18",
- "2025-01-19",
- "2025-01-20",
- "2025-01-21",
- "2025-01-22",
- "2025-01-23"],
- "action" => "1"
- ]);
- dd($res);
+ // $res=$aspnet::SendYanZhengMaCode(1,"19933509886");
+
+ // dd($res);
//优惠券-----------------
// $data=[
// 'action'=>4,
diff --git a/Laravel/routes/web.php b/Laravel/routes/web.php
index cd5ee8e..248564f 100644
--- a/Laravel/routes/web.php
+++ b/Laravel/routes/web.php
@@ -29,6 +29,8 @@ Route::get('/wxLogin/{env}', function ($env) {
Route::get('/wxGetCode', 'App\Http\Controllers\API\mH5\LoginController@wxGetCode');
Route::get('/test', 'App\Http\Controllers\TestController@DBtest');
+
+
Route::any('/payNotify', 'App\Http\Controllers\API\H5\PayController@Notify')->middleware('log');//支付回调
Route::group(['middleware' => ['log'],'prefix' => 'api/H5'], function () {
Route::post('/CheckUpTypeGetList', 'App\Http\Controllers\API\H5\CheckUpTypeController@GetList');//获取体检类型分类
@@ -72,6 +74,8 @@ Route::group(['middleware' => ['log'],'prefix' => 'api/H5'], function () {
Route::post('/HunQianQuestionSubmit', 'App\Http\Controllers\API\H5\QuestionController@HunQianQuestionSubmit');//婚前问卷提交
Route::post('/hunjianBySFZ', 'App\Http\Controllers\API\H5\UserController@hunjianBySFZ');//根据身份证查询建档信息
Route::post('/CheckedSignIn', 'App\Http\Controllers\API\H5\OrderController@CheckedSignIn');//检后签到
+ Route::post('/SendMsgCode', 'App\Http\Controllers\API\SendMsgCodeController@SendMsgCode');//发送验证码
+ Route::post('/CheckMsgCode', 'App\Http\Controllers\API\SendMsgCodeController@CheckMsgCode');//验证验证码
diff --git a/bot/workerman/composer.json b/bot/workerman/composer.json
index fdd4808..98601fd 100755
--- a/bot/workerman/composer.json
+++ b/bot/workerman/composer.json
@@ -24,7 +24,7 @@
"source": "https://github.com/walkor/workerman"
},
"require": {
- "php": ">=5.3"
+ "php": ">=5.5"
},
"suggest": {
"ext-event": "For better performance. "
diff --git a/h5/common/PriceRange.vue b/h5/common/PriceRange.vue
new file mode 100644
index 0000000..5f57210
--- /dev/null
+++ b/h5/common/PriceRange.vue
@@ -0,0 +1,131 @@
+
+
+
+
+ 折线图
+
+
+ ¥{{rang0}}
+ ¥{{rang1}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/h5/pages.json b/h5/pages.json
index a6b2273..09493a3 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -14,6 +14,14 @@
"navigationBarTextStyle": "white"
}
},
+ {
+ "path": "pages/main/combo/combo_new",
+ "style": {
+ "navigationBarTitleText": "套餐",
+ "navigationBarBackgroundColor": "#239EA3",
+ "navigationBarTextStyle": "white"
+ }
+ },
{
"path": "pages/main/combo/tcdb",
"style": {
@@ -276,6 +284,14 @@
"style": {
"navigationBarTitleText": "预约医生"
}
+ },
+ {
+ "path" : "pages/test/test",
+ "style" :
+ {
+ "navigationBarTitleText" : "",
+ "enablePullDownRefresh" : false
+ }
}
],
diff --git a/h5/pages/main/combo/combo_new.vue b/h5/pages/main/combo/combo_new.vue
new file mode 100644
index 0000000..e78503b
--- /dev/null
+++ b/h5/pages/main/combo/combo_new.vue
@@ -0,0 +1,1103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择套餐
+ 专家定制
+ 项目自选
+
+
+
+
+
+ {{ value[sortIndex]?.name || "综合排序" }}
+
+
+ {{ value[comboIndex]?.name || "套餐类型" }}
+
+
+ {{ value[crowdIndex]?.name || "适用人群" }}
+
+
+
+
+
+
+
+ 筛选
+
+
+
+
+
+
+
+
+
+
+ {{ i.name }}
+
+
+ {{ ii.text }}
+
+
+
+ {{ i.tags2?.join(" | ") }}
+
+
+
+
+ ¥
+ {{ i.price }}
+
+ ¥{{ i.original_price }}
+
+
+
+
+
+
+
+ {{comboIds.includes(i.combo_id) ? "已加入" : "对比"}}
+
+ 预约
+
+
+
+
+
+
+
+
+ 请选择
+
+
+
+
+ {{ item.item_name }}
+
+ ¥
+ {{ item.price }}
+
+
+
+
+ 当前套餐包含一个可自由{{
+ multipleList[multipleIndex]["item_list"].length
+ }}选1的体检项目,请
根据您的实际情况自行选择。
+ {{
+ multipleIndex == multipleList.length - 1 ? "确定" : "下一项"
+ }}
+
+
+
+
+
+
+
+
+
+ {{ val.name }}
+
+
+ {{ val.name }}
+
+
+
+
+
+
+
+
+
+
+ 套餐价格
+
+
+ {{ val.name }}
+
+
+
+
+ 体检项目(多选)
+
+
+ {{ val.name }}
+
+
+
+
+ 重置
+ 确定
+
+
+
+
+
+
+
+
+
+
+
+ 重置
+ 确定
+
+
+
+
+
+
+
+
diff --git a/h5/pages/main/index/index.vue b/h5/pages/main/index/index.vue
index 3ae2919..4e50284 100644
--- a/h5/pages/main/index/index.vue
+++ b/h5/pages/main/index/index.vue
@@ -203,6 +203,11 @@
url: '/pages/other/entry/index?path=/pages/physical-examination/location/index'+p
})
};
+ const gotoo=()=>{
+ uni.navigateTo({
+ url: "/pages/test/test"
+ })
+ }
onShow(() => {
@@ -231,6 +236,7 @@
getUserInfo()
$store.setCheckupTypeId({});
$store.setDuoXuanYi({});
+ $store.setPeiOuUser({});
})
@@ -283,7 +289,7 @@
- 12250922
+ 01031940
diff --git a/h5/pages/main/question/question/question.vue b/h5/pages/main/question/question/question.vue
index 4e2c239..cd0960c 100644
--- a/h5/pages/main/question/question/question.vue
+++ b/h5/pages/main/question/question/question.vue
@@ -309,7 +309,7 @@
}
-
+
@@ -317,8 +317,13 @@
带入上次答题记录
-
+
+
+
健康问卷
@@ -623,6 +628,7 @@
width: 750rpx;
height: 226rpx;
overflow: hidden;
+
}
.q2_banner_wrapper image {
@@ -654,6 +660,9 @@
height: 434rpx;
margin: 0 auto;
position: relative;
+ padding-top: 20rpx;
+ padding-left: 20rpx;
+ padding-right: 20rpx;
}
.push_log_wrapper {
@@ -661,22 +670,37 @@
z-index: 9;
width: 250rpx;
height: 50rpx;
- background: #38C6BC;
- right: 30rpx;
+ /* background: #DAD3C9; */
+ /* color: #7E6F5C; */
+ color: #fff;
+ background: #259ea3;
+ right: 36rpx;
top: -15rpx;
border-radius: 6rpx;
margin: 40rpx auto 0;
font-weight: 500;
font-size: 22rpx;
- color: #FFFFFF;
+
line-height: 50rpx;
text-align: center;
}
.banner_wrapper image {
- width: 724rpx;
+ width: 714rpx;
height: 434rpx;
display: block;
object-fit: contain;
}
+ .chuchu{
+ background-color: #259ea3;
+ border-radius: 10rpx;
+ margin: 20rpx;
+ padding: 10rpx 30rpx;
+ color: #fff;
+ font-size: 24rpx;
+ display: flex;
+ justify-items: center;
+ align-items: center; /* 垂直居中 */
+ height: 30rpx; /* 设置父容器的高度 */
+ }
\ No newline at end of file
diff --git a/h5/pages/main/tjyy/tjyy.vue b/h5/pages/main/tjyy/tjyy.vue
index 9ea0d96..b3dc6ea 100755
--- a/h5/pages/main/tjyy/tjyy.vue
+++ b/h5/pages/main/tjyy/tjyy.vue
@@ -307,6 +307,7 @@ const comfrimyy = async () => {
coupon_id:yytjInfo.value?.couponId || null,
wj: buyInfo.value.wj,
erxian_info:erxianInfo.value,
+ peiou_info:$store.getPeiOuUser()//配偶信息
};
console.log(obj);
const response = await $api("OrderCreate", obj);
diff --git a/h5/pages/premarital/form/form.vue b/h5/pages/premarital/form/form.vue
index 63773c6..9eae39b 100644
--- a/h5/pages/premarital/form/form.vue
+++ b/h5/pages/premarital/form/form.vue
@@ -93,6 +93,7 @@
mountedAction()
}
}
+ let msgCode=ref('');
const number_type_array = [{
value: 1,
label: '身份证'
@@ -191,7 +192,7 @@
'职业': "",
'出生地': "",
'配偶姓名': "",
- '配偶证件类型': 0,
+ '配偶证件类型':0,
'配偶证件号': "",
'血缘关系': "无",
// '邮政编码': "",
@@ -217,10 +218,10 @@
}
const editDoneClick = async() => {
let post_data = JSON.parse(JSON.stringify(input_data.value))
- post_data['证件类型'] = number_type_array[input_data.value['证件类型']].value
- post_data['配偶证件类型'] = number_type_array[input_data.value['配偶证件类型']].value
+ post_data['证件类型'] = input_data.value['证件类型']
+ post_data['配偶证件类型'] = input_data.value['配偶证件类型']
for (let i in post_data) {
- if (!post_data[i]) {
+ if (!post_data[i] && post_data[i]!==0) {
return uni.$lu.toast(`请填写${i}`)
}
}
@@ -230,10 +231,21 @@
sfz: input_data.value['配偶证件号'],
})
- $response(response, () => {
+ $response(response, async () => {
if(response.status){
if(response.data.info.code ==200){
- HunQianQuestionSubmit(post_data)
+ let peiou_info=$store.getPeiOuUser()
+ peiou_info={
+ name:input_data.value['配偶姓名'],
+ sfz:input_data.value['配偶证件号']
+ }
+ $store.setPeiOuUser(peiou_info);
+ let checkcode=false;
+ checkcode=await CheckMsgCode()
+ if(checkcode===true){
+ HunQianQuestionSubmit(post_data)
+ }
+
}else{
uni.$lu.toast("配偶未建档,请先建档")
}
@@ -243,6 +255,43 @@
})
+ }
+ const GetMsgCode=async ()=>{
+ if(input_data.value['手机号码']==''){
+ uni.$lu.toast("验证码不能为空")
+ return false
+ }
+ uni.showLoading({
+ title: "加载中",
+ });
+ const response = await $api('SendMsgCode', {
+ mobile:input_data.value['手机号码']
+ })
+ uni.hideLoading();
+ $response(response, () => {
+ if(response.status){
+ uni.$lu.toast("发送成功")
+ }
+ })
+ }
+ const CheckMsgCode= async ()=>{
+ if(msgCode.value==''){
+ uni.$lu.toast("验证码不能为空")
+ return false
+ }
+ uni.showLoading({
+ title: "加载中",
+ });
+ const response = await $api('CheckMsgCode', {
+ mobile:input_data.value['手机号码'],
+ code:msgCode.value
+ })
+ uni.hideLoading();
+ let status=false;
+ $response(response, () => {
+ status=response.status
+ })
+ return status
}
const HunQianQuestionSubmit = async (post_data) => {
const response = await $api('HunQianQuestionSubmit', {
@@ -292,13 +341,13 @@
{bindWenHuaPickerChange(e, k)}" :value="WenHuaIndex"
:range="wenhua_array" >
- {{WenHuaIndex==""?"请选择文化程度":wenhua_array[WenHuaIndex]}}
+ {{WenHuaIndex==""?"请选择文化程度":wenhua_array[WenHuaIndex]}}
{bindZhiYePickerChange(e, k)}" :value="ZhiYeIndex"
:range="zhiye_array" >
- {{ZhiYeIndex==""?"请选择职业":zhiye_array[ZhiYeIndex]}}
+ {{ZhiYeIndex==""?"请选择职业":zhiye_array[ZhiYeIndex]}}
@@ -323,11 +372,22 @@
+
+
+
+ 获取验证码
+
+
+
+ 验证码
+
+
+
提交
@@ -400,6 +460,7 @@
.form_title_wrapper {
width: 140rpx;
+ font-size: 26rpx;
}
.form_item_wrapper {
@@ -427,4 +488,7 @@
width: calc(100% - 50rpx);
margin: 0 auto;
}
+ .huizi{
+ color: #888888;
+ }
\ No newline at end of file
diff --git a/h5/pages/test/test.vue b/h5/pages/test/test.vue
new file mode 100644
index 0000000..69dd757
--- /dev/null
+++ b/h5/pages/test/test.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+ {{fileInfo}}
+
+
+
+
+
+
+
diff --git a/h5/static/assets/question/banner3.png b/h5/static/assets/question/banner3.png
new file mode 100644
index 0000000..32c4127
Binary files /dev/null and b/h5/static/assets/question/banner3.png differ
diff --git a/h5/store/index.js b/h5/store/index.js
index d71664d..666bce1 100644
--- a/h5/store/index.js
+++ b/h5/store/index.js
@@ -77,6 +77,15 @@ export const useStore = defineStore('counter', {
getUser() {
return JSON.parse(uni.getStorageSync('USER') || '{}') || this.user;
},
+ //配偶信息
+ setPeiOuUser(user) {
+ this.user = user;
+ uni.setStorageSync('PEIOU', JSON.stringify(user));
+ },
+ //获取配偶信息
+ getPeiOuUser() {
+ return JSON.parse(uni.getStorageSync('PEIOU') || '{}') || this.user;
+ },
setGroupInfo(info) {
this.groupInfo = info;
uni.setStorageSync('GROUP_INFO', JSON.stringify(info));