更新
main
yanzai 2 years ago
parent 92955a80b1
commit a2198832b3

@ -0,0 +1,22 @@
<?php
namespace App\Http\Controllers\API\Admin\YeWu;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Services\Admin\YeWu\HealthCheckupService;
class HealthCheckupController extends Controller
{
//创建体检记录
public function CreateRecord(){
$CheckupInfo=request('CheckupInfo');
if(!$CheckupInfo) return \Yz::echoError1('检查信息为空');
if(!$CheckupInfo['name']) return \Yz::echoError1('姓名不能为空');
if(!isset($CheckupInfo['id_card_num'])) return \Yz::echoError1('id_card_num不能为空');
if(!isset($CheckupInfo['type'])) return \Yz::echoError1('type不能为空');
if(!isset($CheckupInfo['institution_id'])) return \Yz::echoError1('institution_id不能为空');
$s=app()->make(HealthCheckupService::class);
return $s->CreateRecord($CheckupInfo);
}
}

@ -12,7 +12,7 @@ class HealthOrganizationController extends Controller
public function GetEnableList(Request $request){
$userid = $request->get('userid');//中间件产生的参数
$group = $request->get('role');//中间件产生的参数
if($group<>1 or $group<>7) \Yz::echoError('无此接口访问权限');
if($group<>1 or $group<>7) return \Yz::echoError('无此接口访问权限');
$s=app()->make(HealthOrganizationService::class);
return $s->GetList(['type'=>'enable','group'=>$group,'userid'=>$userid]);

@ -23,7 +23,7 @@ class healthCalendarController extends Controller
$userid = $request->get('userid');//中间件产生的参数
$group = $request->get('role');//中间件产生的参数
$info= request('info');
if($group<>1 or $group<>7) \Yz::echoError('无此接口访问权限');
if($group<>1 or $group<>7) return \Yz::echoError('无此接口访问权限');
$s=app()->make(HealthCalendarService::class);
return $s->CreateCalendar(['info'=>$info,'group'=>$group,'userid'=>$userid]);

@ -0,0 +1,75 @@
<?php
namespace App\Services\Admin\YeWu;
use Illuminate\Support\Facades\DB;
use App\Services\mH5\PersonService;
class HealthCheckupService
{
//创建体检记录
public function CreateRecord($CheckupInfo){
date_default_timezone_set('PRC');
$currentYear = date('Y');
$firstDay = date('Y-01-01', strtotime($currentYear));
$lastDay = date('Y-12-31', strtotime($currentYear));
//检查今年是否体检过
$s=app()->make(PersonService::class);
$check=$s->GetPersonRecode(['id_num'=>$CheckupInfo['id_card_num']]);
if(!$check['status']) return $check;
$status=false;
DB::beginTransaction(); // 开始事务
try {
// 执行数据库操作
if($CheckupInfo['type']==1){
//如果体检类型为健康证 更新预约记录表
$u= DB::table('appointment_record')
->where([
'id_card_num'=>$CheckupInfo['id_card_num'],
'org_id'=>$CheckupInfo['institution_id'],
'status'=>1
])->whereBetween('created_at',[$firstDay,$lastDay])->update(['status'=>2]);
}
$u2=DB::table('examination_records')->insert([
"id_card_num"=>$CheckupInfo['id_card_num'],
"type"=>$CheckupInfo['type'],
"institution_id"=>$CheckupInfo['institution_id']
]);
if($CheckupInfo['type']==1){
if($u==1 and $u2==true){
DB::commit(); // 提交事务
$status=true;
}else{
DB::rollBack(); // 回滚事务
}
}else{
if($u2){
DB::commit(); // 提交事务
$status=true;
}else{
DB::rollBack(); // 回滚事务
}
}
} catch (\Exception $e) {
DB::rollBack(); // 回滚事务
}
if($status){
return \Yz::Return(true,'ok',[]);
}else{
return \Yz::echoError1("操作失败");
}
}
}

@ -63,7 +63,7 @@ class PersonService
$firstDay = date('Y-01-01', strtotime($currentYear));
$lastDay = date('Y-12-31', strtotime($currentYear));
$c=DB::table('examination_records')->select(['id','id_card_num','created_at as insertime'])->where([['id_card_num','=',$id_num],['created_at','>',$firstDay],['created_at','<',$lastDay]])->get();
$c=DB::table('examination_records')->select(['id','id_card_num','created_at as insertime'])->where([['id_card_num','=',$id_num],['created_at','>=',$firstDay],['created_at','<=',$lastDay]])->get();
if(count($c)>0){
$result['status']=false;
$result['msg']='已体检过';

@ -57,3 +57,8 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1/mH5'],function ()
Route::post('GetEnableCalendar','App\Http\Controllers\API\mH5\OrganizationController@GetEnableCalendar'); //获取可用体检机构日历
Route::post('StartYuYue','App\Http\Controllers\API\mH5\OrganizationController@StartYuYue'); //开始预约
});
//对外接口
Route::get('CreateCheckupRecord','App\Http\Controllers\API\Admin\YeWu\HealthCheckupController@CreateRecord'); //创建预约记录

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

@ -40,6 +40,14 @@ const router = createRouter({
path: '/yuYueSuccess',
name: 'YuYueSuccess',
component: () => import('../views/YuYueSuccess.vue')
},{
path: '/showReport',
name: 'ShowReport',
component: () => import('../views/ShowReport.vue')
},{
path: '/healthCertificate',
name: 'HealthCertificate',
component: () => import('../views/HealthCertificate.vue')
}]
})

@ -0,0 +1,177 @@
<template>
<div class="HealthCertificate">
<div class="main">
<div class="title">北京市从业人员健康证明</div>
<div class="info">
<div class="left">
<div class="pic">头像</div>
<div class="left_xia">
<div>类型食品</div>
<div>日期2023-05-01</div>
<div>编号1235454546</div>
</div>
</div>
<div class="right">
<div class="right_shang">
<div class="erweima">222</div>
<div class="userinfo">
<div class="name">李梦<span class="sex">()</span></div>
<div class="sfz">身份证号130666454545454545</div>
</div>
</div>
<div class="right_xia">
<table cellpadding="0" cellspacing="0" border="1">
<tr>
<td>检查项目</td>
<td>检查结果</td>
<td>检查日期</td>
</tr>
<tr>
<td>细菌性痢疾</td>
<td>合格</td>
<td>2022-05-01</td>
</tr>
<tr>
<td>细菌性痢疾</td>
<td>合格</td>
<td>2022-05-01</td>
</tr>
<tr>
<td>细菌性痢疾</td>
<td>合格</td>
<td>2022-05-01</td>
</tr>
<tr>
<td>细菌性痢疾</td>
<td>合格</td>
<td>2022-05-01</td>
</tr>
<tr>
<td>细菌性痢疾</td>
<td>合格</td>
<td>2022-05-01</td>
</tr>
<tr>
<td>细菌性痢疾</td>
<td>合格</td>
<td>2022-05-01</td>
</tr>
<tr>
<td>细菌性痢疾</td>
<td>合格</td>
<td>2022-05-01</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="zhang">
<img src="@/assets/image/zhang.png">
</div>
</div>
</template>
<style scoped>
.HealthCertificate{
background-color: #f5f5f5;
padding-top: 10px;
}
.main{
aspect-ratio:158 / 100;
border-radius: 5%;
overflow: hidden;
}
.title{
font-size: 6vw;
height: 15%;
text-align: center;
color: #fff;
background-color: #1b2f60;
}
.info{
display: flex;
height: 85%;
}
.left{
width: 30%;
height: 100%;
background-color: #c3ff83;
display: flex;
flex-direction: column;
align-items: center;
}
.pic{
width: 80%;
height: 60%;
border: 1px solid red;
}
.left_xia{
display: flex;
flex-direction: column;
border: 1px solid green;
height: 40%;
justify-content: space-between;
font-size: 2.5vw;
padding-top:10% ;
padding-bottom: 10%;
}
.right{
height: 100%;
width: 70%;
background-color: #93d2ff;
}
.right_shang{
display: flex;
height: 33%;
border: 1px solid #222;
}
.erweima{
width: 30%;
border: 1px solid #fff;
height: 100%;
}
.userinfo{
width: 70%;
padding: 5% 10% 0 5%;
}
.name{
font-size: 5vw;
border-bottom: 1px solid #000;
font-weight: bolder;
}
.sex{
font-size: 4vw;
}
.sfz{
font-size: 2.5vw;
margin-top: 3%;
font-weight: 500;
}
.right_xia{
padding-top: 3%;
padding-right: 2%;
}
table{
width: 100%;
text-align: center;
border: 1px solid #000;
font-size: 2.3vw;
}
td{
border: 1px solid #000;
}
.zhang{
position: absolute;
top: 25%;
left: 20%;
}
.zhang img{
width: 21vw;
}
</style>

@ -35,8 +35,7 @@
<script setup>
import {
ref,
onMounted
ref
} from 'vue';
import {
mH5Register
@ -83,7 +82,7 @@
</script>
<style scoped>
.Register {}
.r_head {
display: flex;

@ -72,7 +72,7 @@
day.bottomInfo = '预约';
day.className = "lei"
} else {
console.log(i)
}
})
return day;

@ -5,7 +5,7 @@
<div class="title">请选择预约体检机构</div>
<div class="title2">请就近选择体检机构</div>
<van-radio-group v-model="organization">
<div v-for=" item in orgList" class="item" :class="organization==item.id?'active':''"
<div v-for=" item in orgList" class="item" :key="item.id" :class="organization==item.id?'active':''"
@click="organization=item.id">
<div class="logo"><img src="../assets/image/map.png" /></div>
<div class="name">

@ -0,0 +1,147 @@
<template>
<div class="showreport">
<div class="top">
<van-row class="title">
<van-col span="6">姓名</van-col>
<van-col span="18">张三</van-col>
</van-row>
<van-row class="title">
<van-col span="6">性别</van-col>
<van-col span="18"></van-col>
</van-row>
<van-row class="title">
<van-col span="6">身份证</van-col>
<van-col span="18">131122115511555111</van-col>
</van-row>
<van-row class="button">
<van-col span="8"><RouterLink to="/showReport"><van-button size="small" plain>查询体检结果</van-button></RouterLink></van-col>
<van-col span="8"><RouterLink to="/healthCertificate"><van-button size="small" plain>查看健康证</van-button></RouterLink></van-col>
<van-col span="8"><van-button size="small" plain>下载报告</van-button></van-col>
</van-row>
<div class="title1">北京市从业人员体检结果</div>
</div>
<div class="bottom">
<van-row style="margin-top: 20px;color: #9e9e9e;">
<van-col span="4"></van-col>
<van-col span="16">项目</van-col>
<van-col span="4">结果</van-col>
</van-row>
<van-row v-for="(item, index) in list" :key="index" class="list">
<van-col v-if="item.value == '无'" span="4"><van-icon name="checked" color="#4dde79" size="20px" /></van-col>
<van-col v-if="item.value == '有'" span="4"><van-icon name="warning" color="#de554d" size="20px" /></van-col>
<van-col span="16">{{ item.name }}</van-col>
<van-col v-if="item.value == '无'" span="4"><span style="color: #ccc;"></span></van-col>
<van-col v-if="item.value == '有'" span="4"></van-col>
</van-row>
</div>
</div>
</template>
<script setup>
import { RouterLink } from 'vue-router';
let list = [
{
name: "细菌性痢疾",
value: "无"
}, {
name: "伤寒和副伤赛",
value: "有"
}, {
name: "病毒性肝炎(甲型、戌型)",
value: "有"
}, {
name: "活动性肺结核",
value: "无"
},
{
name: "化脓性或渗出性皮肤病",
value: "无"
}, {
name: "手部真菌感染性疾病(如手癣、指甲癣等)",
value: "无"
}, {
name: "霍乱",
value: "无"
}, {
name: "阿米巴性痢疾",
value: "无"
}, {
name: "手部湿疹",
value: "无"
}, {
name: "手部的银屑病或者鳞屑",
value: "无"
},
]
</script>
<style scoped >
.showreport {
height: 100vh;
background: radial-gradient(circle at top center, #33cdc9 30%, #e3e3e3, transparent 2%);
padding-top: 20px;
}
.title1 {
text-align: center;
font-size: 18px;
background-color: #fff;
padding: 10px 40px;
border-radius: 20px;
box-shadow: 0px 5px 5px #add2d1;
color: #333;
transform: translateY(20px);
white-space: nowrap;
}
.top {
color: #ffffff;
background-color: #33cdc9;
border: 1px solid #fff;
margin: auto 10px;
border-radius: 20px;
padding: 20px 20px 0px 20px;
}
.top .button {
margin-top: 10px;
}
.top .button .van-col {
padding-left: 10px;
padding-right: 10px;
}
.top .button .van-button {
width: 100%;
}
.top .title {
text-align: center;
font-size: 18px;
font-weight: 900;
text-align: right;
margin-top: 10px;
}
.top .title .van-col:last-child {
text-align: left;
padding-left: 10px;
}
.bottom {
background-color: #fff;
padding: 20px;
}
.bottom .list {
margin-top: 10px;
padding-bottom: 10px;
border-bottom: 1px dotted #ddd;
}
</style>
Loading…
Cancel
Save