main
yanzai 1 year ago
parent 0f704da056
commit db82928bcd

Binary file not shown.

@ -12,12 +12,11 @@ class ConfigController extends Controller
//获取站点配置信息
public function GetConfigInfo(){
$configs = new ConfigService();
return $configs->GetConfigInfo(['站点名称','站点图片']);
return $configs->GetConfigInfo(['站点名称','站点图片','门诊缴费超时时间','门诊缴费轮询间隔']);
}
public function SaveConfig(){
$name = request('name');
$logo = request('logo');
$info = request('info');
$configs = new ConfigService();
return $configs->SaveConfig($name,$logo);
return $configs->SaveConfig($info);
}
}

@ -62,6 +62,7 @@ class PlanListController extends Controller
// 循环日期并判断星期
$current_date = clone $start_date;
DB::beginTransaction();
$success_count=0;//成功创建的数量
while ($current_date <= $end_date) {
// 获取当前日期的星期几0表示星期日1表示星期一以此类推
$weekday = $current_date->format('w');
@ -113,6 +114,9 @@ class PlanListController extends Controller
$plan_id = DB::table('s_source_roster_detail')->insertGetId($data);
if($plan_id){
$success_count++;
}
// 插入数量表
$model_count_info = DB::table('s_source_roster_count')->where(['roster_id' => $model->id])->get();
if (count($model_count_info) > 0) {
@ -154,9 +158,10 @@ class PlanListController extends Controller
}
// 将当前日期增加一天
$current_date->modify('+1 day');
}
DB::commit();
return \Yz::Return(true, '创建成功', []);
return \Yz::Return(true, '执行完成,范围:'.$dateRange[0].'-'.$dateRange[1].',共计生成计划 '.$success_count.' 条', ['dateRange'=>$dateRange,'success_count'=>$success_count]);
}
}
@ -400,9 +405,20 @@ class PlanListController extends Controller
$list=DB::table('s_list')
->leftJoin('s_department_resources','s_list.reservation_sources','=','s_department_resources.id')
->select('s_list.*','s_department_resources.department_resources_name')
->where(['s_list.roster_id'=>$planid,'s_list.appointment_type_id'=>$qudaoid,'s_list.is_del'=>0,'s_list.is_nullify'=>0])->whereIn('s_list.list_status',[1,2,3])->get();
->where(['s_list.roster_id'=>$planid,'s_list.is_del'=>0,'s_list.is_nullify'=>0])->whereIn('s_list.list_status',[1,2,3]);
if (!empty($qudaoid)) {
$list=$list->where(['s_list.appointment_type_id'=>$qudaoid]);
}
$list=$list->get();
$qudao=DB::table('s_appointment_type')->get();
foreach ($list as $key=>$item){
foreach ($qudao as $q){
if($q->id==$item->appointment_type_id){
$item->qudao_name=$q->name;
}
}
}
return \Yz::Return(true,'查询完成',$list);
}
}

@ -49,8 +49,10 @@ class PlanModelController extends Controller
$count = $list;
$count = $count->count();
$list = $list->orderBy('id', 'desc')->limit($pageSize)->skip(($page - 1) * $pageSize) // 跳过前9999条记录
->take($pageSize)->get();
$list=$list->orderByRaw(DB::raw(
"FIELD(`weekname`, '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日') ASC"
));
$list = $list->orderBy('s_source_roster.begin_time')->get();
$ids = [];
foreach ($list as $key => $value) {
$list[$key]->countsInfo = [];

@ -5,6 +5,7 @@ namespace App\Http\Controllers\API\Admin\YeWu;
use App\Http\Controllers\Controller;
use DateTime;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\DB;
use Tools;
@ -142,7 +143,7 @@ class WorkMainController extends Controller
public function GetLoglist()
{
$id = request('id');
$List=DB::table('s_list_log')->where(['list_id'=>$id])->get();
$List=DB::table('s_list_log')->where(['list_id'=>$id])->orderBy('id','desc')->get();
return \Yz::Return(true,'查询完成',$List);
}
@ -169,6 +170,7 @@ class WorkMainController extends Controller
//获取所有传过来的检查项目关联的设备
$ItemsDevices= DB::table('s_check_item as a')
->leftJoin('s_check_item_device as b','a.id','=','b.item_id')
->leftJoin('s_devices as c','b.device_id','=','c.id')
->whereIn('a.item_name',$itemNames)->where(['a.is_del'=>0,'a.status'=>1])->get();
//按照第一个勾选的检查项目关联的设备进行分组,能在一个设备上进行检查的分在一组
if(!empty($FirstItemDevices)){
@ -177,10 +179,11 @@ class WorkMainController extends Controller
$lg=[];
foreach ($ItemsDevices as $v){
if($v->device_id==$value){
foreach ($items as $item){
if($item['name']==$v->item_name){
$v->rowid=$item['rowid'];
}
}
$lg[]=$v;
@ -221,4 +224,52 @@ class WorkMainController extends Controller
}
return \Yz::Return(true,'可以预约',[]);
}
//检查是否有超时未支付的门诊预约记录,如果有则给其取消,并恢复名额
public function NoPayCancel()
{
date_default_timezone_set('PRC');
$config=DB::table('configs')->where(['label'=>'门诊缴费超时时间'])->first();
if($config->value>0){
$currentDateTime = Carbon::now()->subHours($config->value);
$list=DB::table('s_list')->where(['list_status'=>1,'patient_type'=>1,'is_pay'=>0,'is_del'=>0,'is_nullify'=>0])
->where('entrust_date', '<', $currentDateTime->toDateString())
->orWhere(function($query) use ($currentDateTime) {
$query->whereDate('entrust_date', $currentDateTime->toDateString())
->whereTime('entrust_time', '<', $currentDateTime->toTimeString());
})->get();
$success_count=0;
foreach ($list as $key=>$item){
$u_data=[
'list_status' => 0,
'reservation_date' => null,
'reservation_time' => null,
'reservation_sources' => null,
'services_group' => null,
'roster_id' => null,
'xuhao' => null,
'department_id'=>null,
'appointment_type_id' => null,
'canel_time' => date('Y-m-d H:i:s'),
];
$u_mainList = DB::table('s_list')->where(['id' => $item->id,'list_status'=>1])->update($u_data);
$i_log=DB::table('s_list_log')->insert([
'list_id'=>$item->id,
'reg_num'=>$item->reg_num,
'old_status'=>$item->list_status,
'new_status'=>0,
'create_user'=>null,
'note'=>'超时取消',
'data'=>json_encode($u_data)
]);
$u_count = DB::table('s_source_roster_detail_count')->where(['roster_detail_id' => $item->roster_id, 'appointment_type_id' => $item->appointment_type_id])->decrement('used_count');
if($u_count){
$success_count++;
}
}
return \Yz::Return(true,"执行完成",['success_count'=>$success_count]);
}else{
return \Yz::echoError1("超时参数未设置");
}
}
}

@ -17,7 +17,6 @@ class EntrustController extends Controller
$userid = $request->get('userid');//中间件产生的参数
$list=DB::table('s_list')
->leftJoin('s_period','s_list.reservation_time','=','s_period.id')
->leftJoin('s_department_resources','s_list.reservation_sources','=','s_department_resources.id')

@ -13,7 +13,7 @@ class LoginController extends Controller
$jwt= new JWT();
$accessTimeout = $jwt -> GetGetSecretTimeOut();
$refreshTimeout = $jwt -> GetRefreshTokenTimeOut();
$access_token = $jwt->BuildJWT('yz','access','0001289649',666,$accessTimeout);
$access_token = $jwt->BuildJWT('yz','access','0006944759',666,$accessTimeout);
$refresh_token = $jwt->BuildJWT('yz','refresh',9999,'',$refreshTimeout);
$result['token']=$access_token;
$result['refresh_token']=$refresh_token;

@ -6,13 +6,13 @@ class MenuService
public function GetBaseMenuList($arr){
$result=array();
if($arr['userid']=='search'){
$menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1",[$arr['group']]);
$menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1 order by `order` ",[$arr['group']]);
$result['list']=$menulist;
$result['status']='ok';
}else{
$query=DB::select("select `group` from users where id =? ",[$arr['userid']]);
if($query[0]->group==$arr['group']){
$menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1",[$arr['group']]);
$menulist=DB::select("select b.id,b.pid,b.order,b.icon, b.name,b.url from group_menu as a left join menu as b on a.menu_id=b.id where a.group_id =? and b.status=1 order by `order`",[$arr['group']]);
$result['list']=$menulist;
$result['status']='ok';

@ -146,12 +146,28 @@ WHERE
$oldMainInfos=[];//临时存储原来的主表信息,用于改约
//遍历多个s_list表id,前端多选,一次预约多个检查项目
foreach ($mainlistids as $key_m=>$mainlistid ){
$mainInfo = DB::table('s_list')->where(['id' => $mainlistid])->first();
$mainInfo = DB::table('s_list as a')
->select('a.*','b.period_begin_time','b.period_end_time')
->leftJoin('s_period as b','a.reservation_time','=','b.id')
->where(['a.id' => $mainlistid])->first();
$oldMainInfos[]=$mainInfo;
if (!$mainInfo) return \Yz::echoError1('医嘱不存在');
//判断状态
if ($do_type == 1 && $mainInfo->list_status <> 0) return \Yz::echoError1($mainInfo->entrust.' 该医嘱状态不允许预约,当前状态:' . $mainInfo->list_status);
if ($do_type == 2 && $mainInfo->list_status <> 1) return \Yz::echoError1($mainInfo->entrust.' 该医嘱状态不允许改约操作,当前状态:' . $mainInfo->list_status);
$msg_t="";
if($mainInfo->list_status==0){
$msg_t="当前状态为待预约";
}
if($mainInfo->list_status==1){
$msg_t="已经在".$mainInfo->reservation_date.'的'.$mainInfo->period_begin_time.'-'.$mainInfo->period_end_time.'预约成功,不能再次预约';
}
if($mainInfo->list_status==2){
$msg_t="当前状态为已登记";
}
if($mainInfo->list_status==3){
$msg_t="当前状态为已完成";
}
if ($do_type == 1 && $mainInfo->list_status <> 0) return \Yz::echoError1($mainInfo->entrust.' '.$msg_t.',禁止预约');
if ($do_type == 2 && $mainInfo->list_status <> 1) return \Yz::echoError1($mainInfo->entrust.' '.$msg_t.',不允许改约操作');
//判断互斥暂时根据reg_num判断身份
@ -265,7 +281,7 @@ WHERE
} catch (\Exception $e) {
DB::rollBack();
return \Yz::echoError1('预约异常'.$e);
return \Yz::echoError1('预约异常'.$e->getMessage());
}

@ -19,12 +19,13 @@ class ConfigService
return \Yz::Return(false, '查询失败');
}
}
public function SaveConfig($name,$logo){
public function SaveConfig($info){
$result=array();
DB::beginTransaction();
try {
$d= DB::table('configs')->where('label', '=', '站点名称')->update(['value'=>$name]);
$d= DB::table('configs')->where('label', '=', '站点图片')->update(['value'=>$logo]);
foreach ($info as $key=>$value){
$d= DB::table('configs')->where('label', '=', $key)->update(['value'=>$value]);
}
DB::commit(); // 手动提交事务
return \Yz::Return(true, '操作成功');
} catch (\Exception $e) {

@ -105,7 +105,7 @@
var currentDate = new Date(data.data.today_date)
currentDate.setDate(currentDate.getDate() + 1)
tomorrowDate = currentDate.toISOString().split('T')[0]
$('.yiyuInfo:first').trigger('click');
} else {
MsgAlert(data.msg)
@ -130,35 +130,45 @@
if (data.data.appointment_date == $('#datetimepicker1 input').val()) {
$('#xingqi1').html(data.data.weekname);
$('#table1 tbody').html('')
data.data.plan_list.forEach(function(v, i) {
if(data.data.plan_list.length>0){
data.data.plan_list.forEach(function(v, i) {
$('#table1 tbody').append('<tr data-resource='+v.department_resources_name+' data-timerange='+v.begin_time+'-'+v.end_time +' data-date='+v.date +' data-id=' + v.id + ' class=\'table_row\'>\n' +
' <td>' + v.date + '</td>\n' +
' <td>' + v.weekname + '</td>\n' +
' <td>' + v.department_resources_name + '</td>\n' +
' <td>' + v.devices + '</td>\n' +
' <td>' + v.begin_time + '-' + v.end_time + '</td>\n' +
' <td>' + v.used_count + '/' + v.count + '</td>\n' +
' <td class=\'usecount\' onclick=\'test('+v.id+')\'>' + v.used_count + '/' + v.count + '</td>\n' +
' </tr>')
})
}else{
$('#table1 tbody').append('暂无可用计划')
}
}
if (data.data.appointment_date == $('#datetimepicker2 input').val()) {
$('#xingqi2').html(data.data.weekname);
$('#table2 tbody').html('')
data.data.plan_list.forEach(function(v, i) {
if(data.data.plan_list.length>0){
data.data.plan_list.forEach(function(v, i) {
$('#table2 tbody').append('<tr data-resource='+v.department_resources_name+' data-timerange='+v.begin_time+'-'+v.end_time +' data-date='+v.date +' data-id=' + v.id + ' class=\'table_row\'>\n' +
' <td>' + v.date + '</td>\n' +
' <td>' + v.weekname + '</td>\n' +
' <td>' + v.department_resources_name + '</td>\n' +
' <td>' + v.devices + '</td>\n' +
' <td>' + v.begin_time + '-' + v.end_time + '</td>\n' +
' <td>' + v.used_count + '/' + v.count + '</td>\n' +
' <td class=\'usecount\' onclick=\'test('+v.id+')\'>' + v.used_count + '/' + v.count + '</td>\n' +
' </tr>')
})
}else{
$('#table2 tbody').append('暂无可用计划')
}
}
//选中某一行
$('.table_row').off('click').on('click', function() {
$('.table_row').off('click').on('click', function(event) {
if ($(this).hasClass('row_selected')) {
// 如果已经选中,则移除选中状态
$('.table_row').removeClass('row_selected')
@ -216,6 +226,9 @@
$('#loadingModal').modal('hide');
if (data.status) {
MsgAlert("操作成功")
if($('#enable_print').is(':checked')){
PrintFunc();
}
getPlanList($('#datetimepicker1 input').val())
getPlanList($('#datetimepicker2 input').val())
GetMainInfo()
@ -270,12 +283,7 @@
if (selectedId == 0) {
return false
}
if (confirm("你确定要继续吗?")) {
start_yuyue()
}else{
}
start_yuyue()
})
$('.model_button').on('click',function(){
@ -362,7 +370,52 @@
}
$('#dayin_button').on('click',function(){
PrintInfo=null
PrintFunc();
})
$('#shuaxin_button').on('click',function(){
window.location.reload()
})
//点击下一页
$('#xiayiye_button').on('click',function(){
if($(".lanse_bg").length>0){
var cr = new Date($('#datetimepicker2 input').val())
cr.setDate(cr.getDate() + 1)
t1 = cr.toISOString().split('T')[0]
cr.setDate(cr.getDate() + 1)
t2 = cr.toISOString().split('T')[0]
//日历设置日期,支持查询计划
$('#datetimepicker1 input').val(t1)
$('#datetimepicker2 input').val(t2)
getPlanList(t1)
getPlanList(t2)
}
})
//点击上一页
$('#shangyiye_button').on('click',function(){
if($(".lanse_bg").length>0){
var cr = new Date($('#datetimepicker1 input').val())
cr.setDate(cr.getDate() - 1)
t2 = cr.toISOString().split('T')[0]
cr.setDate(cr.getDate() - 1)
t1 = cr.toISOString().split('T')[0]
//日历设置日期,支持查询计划
$('#datetimepicker1 input').val(t1)
$('#datetimepicker2 input').val(t2)
getPlanList(t1)
getPlanList(t2)
}
})
$('#tablelist').load("tablelist.html");
})
function MsgAlert(msg){
$('#tishi .tishineirong').html(msg);
$('#tishi').modal('show');
}
//打印
function PrintFunc(){
PrintInfo=null
$("#shenqingdan").html('')
if($(".lanse_bg").length==0){
MsgAlert('请选择要打印的申请单');
@ -413,16 +466,8 @@
})
})
$('#shuaxin_button').on('click',function(){
window.location.reload()
})
})
function MsgAlert(msg){
$('#tishi .tishineirong').html(msg);
$('#tishi').modal('show');
}
}
</script>
<!-- 加载状态 -->
@ -470,7 +515,7 @@
</div>
<div class="col-md-9">
<div class="b_info">姓名: <span class="b_name"></span> 患者id: <span class="b_id"></span> 性别: <span class="b_sex"></span>
<div class="b_info">姓名: <span class="b_name"></span> 登记号: <span class="b_id"></span> 性别: <span class="b_sex"></span>
年龄: <span class="b_age"></span> 电话: <span class="b_tel"></span> 孕周: <span class="b_yun"></span></div>
<div class="row" style="margin-top: 16px">
<div class="col-md-3">
@ -506,15 +551,18 @@
<div class="col-md-12">
<button type="button" id="yuyue_button" class="btn btn-info" style="width: 130px">预 约</button>
<button type="button" id="shuaxin_button" class="btn btn-info" style="width: 130px;margin-left: 8px;">刷 新</button>
<button type="button" id="dayin_button" class="btn btn-info" style="width: 130px;margin-left: 8px;">打印申请单</button>
<button type="button" id="shangyiye_button" class="btn " style="width: 130px;margin-left: 8px;">上一页</button>
<button type="button" id="xiayiye_button" class="btn " style="width: 130px;margin-left: 8px;">下一页</button>
<button type="button" id="dayin_button" class="btn btn-info" style="width: 130px;margin-left: 8px;margin-right: 10px;">打印申请单</button>
<label><input type="checkbox" id="enable_print" name="enable_print" value="enable_print" checked> 预约完成后打印申请单</label>
</div>
</div>
<hr>
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-1" style="text-align: right; line-height: 36px">日期</div>
<div class="col-md-4">
<div class="col-md-2" style="text-align: right; line-height: 36px">日期</div>
<div class="col-md-5">
<div class="form-group">
<div class='input-group date' id='datetimepicker1' data-date-format="yyyy-mm-dd"
data-link-format="yyyy-mm-dd">
@ -526,20 +574,21 @@
</div>
</div>
<div class="col-md-4" style="line-height: 36px" id="xingqi1"></div>
</div>
<table id="table1_head">
<thead>
<tr>
<th>日期</th>
<th>星期</th>
<th>资源</th>
<th>服务组</th>
<th>时间段</th>
<th>已用/总数</th>
</tr>
</thead>
</table>
<div style="padding-right: 16px;">
<table id="table1_head" >
<thead>
<tr>
<th>日期</th>
<th>星期</th>
<th>资源</th>
<th>服务组</th>
<th>时间段</th>
<th>已用/总数</th>
</tr>
</thead>
</table>
</div>
<div class="table_k" style=" overflow-y: scroll;">
<table id="table1">
<tbody>
@ -551,8 +600,8 @@
</div>
<div class="col-md-6">
<div class="row">
<div class="col-md-1" style="text-align: right; line-height: 36px">日期</div>
<div class="col-md-4">
<div class="col-md-2" style="text-align: right; line-height: 36px">日期</div>
<div class="col-md-5">
<div class="form-group">
<div class='input-group date' id='datetimepicker2' data-date-format="yyyy-mm-dd"
data-link-format="yyyy-mm-dd">
@ -564,20 +613,21 @@
</div>
</div>
<div class="col-md-4" style="line-height: 36px" id="xingqi2"></div>
</div>
<table id="table2_head">
<thead>
<tr>
<th>日期</th>
<th>星期</th>
<th>资源</th>
<th>服务组</th>
<th>时间段</th>
<th>已用/总数</th>
</tr>
</thead>
</table>
<div style="padding-right: 16px;">
<table id="table2_head" >
<thead>
<tr>
<th>日期</th>
<th>星期</th>
<th>资源</th>
<th>服务组</th>
<th>时间段</th>
<th>已用/总数</th>
</tr>
</thead>
</table>
</div>
<div class="table_k" style=" overflow-y: scroll;">
<table id="table2" >
<tbody >
@ -613,7 +663,10 @@
</div>
</div>
<div id="tablelist">
</div>
</div>
<style>

@ -0,0 +1,61 @@
<!-- 加载状态 -->
<div class="modal" id="usedList" tabindex="-1">
<div class="modal-dialog" style="margin-top: 5%;width: 70%">
<div class="modal-content">
<div class="modal-body text-center">
<div class="spinner-border text-primary" role="status">
<table id="usedlist_table" >
<thead>
<tr>
<th>姓名</th>
<th>电话</th>
<th>登记号</th>
<th>申请科室</th>
<th>项目</th>
<th>渠道</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script>
function test(id) {
event.stopPropagation();
console.log(id)
getUsedList(id)
}
function getUsedList(id){
$('#usedlist_table tbody').html('');
$('#loadingModal').modal('show');
$.post(BaseUrl+'/api/admin/GetPlanUsedList', {
planid: id,
}, function(data) {
$('#loadingModal').modal('hide');
if (data.status) {
data.data.forEach(function(v, i) {
$('#usedlist_table tbody').append('<tr >\n' +
' <td>' + v.user_name + '</td>\n' +
' <td>' + v.user_phone + '</td>\n' +
' <td>' + v.reg_num + '</td>\n' +
' <td>' + v.reservation_department + '</td>\n' +
' <td>' + v.entrust + '</td>\n' +
' <td>' + v.qudao_name + '</td>\n' +
' </tr>')
})
$('#usedList').modal('show');
}else{
MsgAlert(data.msg)
}
})
}
$(function () {
})
</script>

@ -97,11 +97,15 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () {
});
//暂时不加权限
Route::post('admin/getMainDetail','App\Http\Controllers\API\Admin\YeWu\WorkMainController@getMainDetail');//获取主表信息
Route::post('admin/GetEnablePlan','App\Http\Controllers\API\Admin\YeWu\PlanListController@GetEnablePlan');//获取可用的计划,用于计划占用
Route::post('admin/PlanYuYue','App\Http\Controllers\API\Admin\YeWu\PlanListController@YuYue');//开始预约
Route::post('admin/CheckEntrstItemGroup','App\Http\Controllers\API\Admin\YeWu\WorkMainController@CheckEntrstItemGroup');//批量检查医嘱检查项目是否可以同时预约
Route::post('admin/CheckIsDaiJian','App\Http\Controllers\API\Admin\YeWu\WorkMainController@CheckIsDaiJian');//检查当前时段是否有存在已经预约的待检查项目
Route::group(['middleware'=>['log']],function () {
Route::post('admin/getMainDetail','App\Http\Controllers\API\Admin\YeWu\WorkMainController@getMainDetail');//获取主表信息
Route::post('admin/GetEnablePlan','App\Http\Controllers\API\Admin\YeWu\PlanListController@GetEnablePlan');//获取可用的计划,用于计划占用
Route::post('admin/PlanYuYue','App\Http\Controllers\API\Admin\YeWu\PlanListController@YuYue');//开始预约
Route::post('admin/CheckEntrstItemGroup','App\Http\Controllers\API\Admin\YeWu\WorkMainController@CheckEntrstItemGroup');//批量检查医嘱检查项目是否可以同时预约
Route::post('admin/CheckIsDaiJian','App\Http\Controllers\API\Admin\YeWu\WorkMainController@CheckIsDaiJian');//检查当前时段是否有存在已经预约的待检查项目
Route::post('admin/GetPlanUsedList','App\Http\Controllers\API\Admin\YeWu\PlanListController@GetUsedList');//计划占用详情列表
Route::post('admin/NoPayCancel','App\Http\Controllers\API\Admin\YeWu\WorkMainController@NoPayCancel');//检查是否有超时未支付的门诊预约记录,如果有则给其取消,并恢复名额
});
//H5端接口
Route::post('H5/Login','App\Http\Controllers\API\H5\LoginController@Login')->middleware('log');
@ -117,7 +121,6 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () {
//对外接口
Route::group(['middleware'=>['check.sign','log'],'prefix'=>'v1'],function () {
Route::post('T/CreateEntrustRecord','App\Http\Controllers\API\Third\EntrustController@CreateRecord');//获取个人医嘱列表
});
//对外接口

@ -1,6 +1,6 @@
ENV = 'production'
VITE_APP_API = 'http://10.50.120.166/YiJiYuYue/Laravel/public/api/'
VITE_APP_FILE = 'http://10.50.120.166/YiJiYuYue/Laravel/public/'
VITE_APP_API_65 = 'http://10.50.120.166/YiJiYuYue/Laravel/public/api/'
VITE_APP_FILE_34343 = 'http://10.50.120.166/YiJiYuYue/Laravel/public/'
VITE_APP_API_111111111111111111111 = 'https://yiji.yuluo.online/Laravel/public/api/'
VITE_APP_FILE_11111111111111111111 = 'https://yiji.yuluo.online/Laravel/public/'
VITE_APP_API = 'https://yiji.yuluo.online/Laravel/public/api/'
VITE_APP_FILE = 'https://yiji.yuluo.online/Laravel/public/'

Binary file not shown.

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>医技预约</title>
<title>深圳市南山区妇幼保健院-医技预约</title>
</head>
<body>
<div id="app"></div>

@ -15,8 +15,10 @@
"element-plus": "^2.3.14",
"pinia": "^2.1.6",
"qrcode": "^1.5.3",
"s": "^1.0.0",
"vue": "^3.3.4",
"vue-router": "^4.2.4"
"vue-router": "^4.2.4",
"vue3-print-nb": "^0.1.4"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.3.3",
@ -2860,6 +2862,14 @@
"queue-microtask": "^1.2.2"
}
},
"node_modules/s": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/s/-/s-1.0.0.tgz",
"integrity": "sha512-Tz63UXhdEBvvIV6Q0a+AV2Dx1TPq+vVWNYBxyCT9TG0uqn9kySwFTjfq3C1YuGBRwYtt9Tof11L6GCKi88foqw==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
@ -3180,6 +3190,14 @@
"vue": "^3.2.0"
}
},
"node_modules/vue3-print-nb": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
"integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
"dependencies": {
"vue": "^3.0.5"
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",

@ -17,8 +17,10 @@
"element-plus": "^2.3.14",
"pinia": "^2.1.6",
"qrcode": "^1.5.3",
"s": "^1.0.0",
"vue": "^3.3.4",
"vue-router": "^4.2.4"
"vue-router": "^4.2.4",
"vue3-print-nb": "^0.1.4"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.3.3",

@ -298,4 +298,7 @@ export const CheckEntrstItemGroup = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/CheckEntrstItemGroup', data: data })
}
//查询医嘱详情
export const getMainDetail = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'admin/getMainDetail', data: data })
}

@ -6,6 +6,7 @@ import 'element-plus/theme-chalk/dark/css-vars.css'
import './assets/main.css'
import './style/dark/css-vars.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import print from 'vue3-print-nb'
import App from './App.vue'
import router from './router'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
@ -20,4 +21,5 @@ app.use(ElementPlus, {
})
app.use(createPinia())
app.use(router)
app.use(print)
app.mount('#app')

@ -50,7 +50,7 @@
@selection-change="handleSelectionChange">
<el-table-column type="selection" />
<el-table-column prop="id" label="Id" />
<el-table-column prop="date" label="日期">
<el-table-column prop="date" label="日期" width="100">
<template #default="scope">
<span>{{ scope.row.date.substring(0, 10) }}</span>
</template>
@ -182,7 +182,7 @@
</span>
</template>
</el-dialog>
<el-dialog v-model="MingXiDialogVisible" title="预约明细" width="50%">
<el-dialog v-model="MingXiDialogVisible" title="预约明细" width="60%">
<div>
<div style="text-align: center;font-size: 16px; margin-top: -30px;margin-bottom: 10px;">{{selectedPlanRow.department_resources_name}}
<span v-for="(item,index) in selectedPlanRow.devices" :key="index"
@ -192,12 +192,12 @@
<el-form-item label="渠道">
<el-select :filterable="true" clearable v-model="selectecQuDaoid" @change="GetMingXi(selectedPlanRow,selectecQuDaoid)" placeholder="选择渠道"
style="margin-left: 8px;width: 150px;">
<el-option label="全部" :value="0" />
<el-option v-for="(item1,index1) in selectedPlanRow.countsInfo" :key="index1"
:label="item1.name" :value="item1.appointment_type_id" />
</el-select>
</el-form-item>
<el-table :data="MingXiList" style="width: 100%;" row-key="id" v-loading="MingXiLoading">
<el-table-column prop="list_status" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.list_status===0" class="ml-2" type="info"></el-tag>
@ -211,6 +211,7 @@
<el-table-column prop="reg_num" label="登记号" />
<el-table-column prop="reservation_department" label="申请科室" />
<el-table-column prop="entrust" label="项目" />
<el-table-column prop="qudao_name" label="渠道" />
</el-table>
</div>
</el-dialog>

@ -87,15 +87,18 @@
</template>
</el-table-column>
</el-table>
<div class="page">
<!-- <div class="page">
<el-pagination v-model:current-page="currentPage" v-model:page-size="pageSize"
:page-sizes="[15, 50, 100, 200]" layout="total,sizes, prev, pager, next" :total="total"
@size-change="PageSizeChange" @current-change="PageCurrentChange" />
</div>
</div> -->
<el-dialog v-model="dialogVisible" title="时间段" width="45%">
<el-form ref="PlanInfoForm" :model="PlanInfo" label-width="100px" v-loading="loading"
style="padding-right: 40px;">
<el-form-item label="星期:" prop="xingqi">
<el-checkbox :disabled="PlanInfo.id==0?false:true" style="margin-right: 8px;" v-model="CheckedAll" @change="CheckedAllFunc"
label="全选"><span style="font-weight: 700;color: #409eff;">全选</span>
</el-checkbox>
<el-checkbox-group v-model="PlanInfo.xingqi">
<el-checkbox :disabled="PlanInfo.id==0?false:true" v-for="(item, index) in xingqi" :key="index"
:label="item.label">{{ item.label }}
@ -169,6 +172,7 @@
</el-select>
</el-form-item>
<el-form-item label="服务组:" v-if="devicesList.length>0">
<div v-if="devicesList.length>1" style="width: 100%;font-size: 12px;color: #999;">()</div>
<el-checkbox-group v-model="PlanInfo.devices">
<el-checkbox v-for="(item,index) in devicesList" :key="index"
:label="item.id">{{ item.device_name }}
@ -359,6 +363,7 @@
let PlanInfo = ref(DataDefault())
const Add = (row = null) => {
CheckedAll.value=false
dialogVisible.value = true
PlanInfo.value = DataDefault()
@ -655,7 +660,15 @@
})
}
let CheckedAll=ref(false);
//
const CheckedAllFunc=(e)=>{
if(e){
PlanInfo.value.xingqi=['星期一','星期二','星期三','星期四','星期五','星期六','星期日'];
}else{
PlanInfo.value.xingqi=[]
}
}
onMounted(() => {
GetList()

@ -45,11 +45,11 @@
<el-input v-model="PeriodInfo.period_name" />
</el-form-item>
<el-form-item label="时间段:">
<el-time-picker v-model="PeriodInfo.timeRange" value-format='HH:mm' is-range range-separator=""
<el-time-picker v-model="PeriodInfo.timeRange" value-format='HH:mm:ss' is-range range-separator=""
start-placeholder="开始时间" end-placeholder="结束时间" @change="changeTimeRange()" />
</el-form-item>
<el-form-item label="预约截止时间:">
<el-time-picker v-model="PeriodInfo.period_deadline" value-format='HH:mm' placeholder="预约截止时间" />
<el-time-picker v-model="PeriodInfo.period_deadline" value-format='HH:mm:ss' placeholder="预约截止时间" />
</el-form-item>
<el-form-item label="状态:">
<el-switch v-model="PeriodInfo.period_status" size="large" active-text="" inactive-text=""

@ -34,8 +34,9 @@
<div class="right_bottom"></div>
</el-col>
</el-row>
<div style="width: 100% ;text-align: center;height: 20px;">深圳市南山区妇幼保健院 版权所有</div>
</el-container>
</div>
</template>
@ -111,8 +112,9 @@
.common-layout {
/* border: 10px solid red; */
width: 100%;
height: 100vh;
height: calc(100vh - 30px);
display: flex;
flex-direction: column;
}
.common-layout .el-main {
@ -125,7 +127,7 @@
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
height: calc(100vh - 30px);
background-color: var(--color-table-th-background);
background-image: url('../assets/loginBackg.png');
background-size: 100%;

@ -1,12 +1,12 @@
<template>
<div v-loading="loading">
<el-form label-width="120px" style="border: 1px solid #e9e9e9; border-radius: 5px;margin-top: 8px;">
<el-row style="padding: 20px;margin:10px ;">
<el-form label-width="180px" style="border: 1px solid #e9e9e9; border-radius: 5px;margin-top: 8px;">
<el-row style="padding: 20px;margin:10px ;" v-if="loginUserinfo.group==5">
<el-col :span="16">
站点信息
</el-col>
</el-row>
<el-row style="padding: 20px;margin:10px ;">
<el-row style="padding: 20px;margin:10px ;" v-if="loginUserinfo.group==5">
<el-col :span="16">
<el-form-item label="Logo">
<el-upload style="margin-left: 20px;" class="avatar-uploader" :action="upfileurl"
@ -18,14 +18,40 @@
</el-upload>
</el-form-item>
<el-form-item label="站点名称">
<el-input size="large" v-model="configInfo.name" placeholder="名称"
<el-input size="large" v-model="configInfo." placeholder="名称"
style=" margin: auto 20px;" />
</el-form-item>
</el-col>
<el-col :span="8" style="display:flex;align-items:center;"><el-button type="primary" size="large"
@click="saveInfo"> </el-button></el-col>
@click="saveInfo({
'站点名称': configInfo.站点名称,
'站点图片': configInfo.站点图片
})"> </el-button></el-col>
</el-row>
<el-row style="padding: 20px;margin:10px ;">
<el-col :span="16">
缴费截止时间设置
</el-col>
</el-row>
<el-row style="padding: 20px;margin:10px ;">
<el-col :span="16">
<el-form-item label="缴费截止时间(单位:小时)">
<el-input size="large" v-model="configInfo." placeholder="名称"
style=" margin: auto 20px;" />
<span class="tishi">*门诊患者医嘱对应检查项目预约成功后超过设置时间未缴费将被取消预约</span>
</el-form-item>
<el-form-item label="缴费截止时间(单位:小时)">
<el-input size="large" v-model="configInfo." placeholder="名称"
style=" margin: auto 20px;" />
<span class="tishi">*设置多少分钟进行一次门诊预约是否缴费检查</span>
</el-form-item>
</el-col>
<el-col :span="8" style="display:flex;align-items:center;"><el-button type="primary" size="large"
@click="saveInfo({
'门诊缴费超时时间': configInfo.门诊缴费超时时间,
'门诊缴费轮询间隔': configInfo.门诊缴费轮询间隔
})"> </el-button></el-col>
</el-row>
</el-form>
</div>
@ -62,23 +88,22 @@
GetConfigInfo().then(res => {
loading.value=false
if(res.status){
configInfo.value.name=res.data.站点名称
configInfo.value.logo=res.data.站点图片
logo.value=import.meta.env.VITE_APP_FILE+configInfo.value.logo
configInfo.value.站点名称=res.data.站点名称
configInfo.value.站点图片=res.data.站点图片
logo.value=import.meta.env.VITE_APP_FILE+configInfo.value.站点图片
configInfo.value.门诊缴费超时时间=res.data.门诊缴费超时时间
configInfo.value.门诊缴费轮询间隔=res.data.门诊缴费轮询间隔
}
})
}
//
let configInfo=ref({
name:'',
logo:''
站点名称:'',
站点图片:''
});
const saveInfo = () => {
const saveInfo = (data) => {
loading.value=true
SaveConfigInfo({
'name': configInfo.value.name,
'logo': configInfo.value.logo
}).then(res => {
SaveConfigInfo({info:data}).then(res => {
loading.value=false
if (res.status) {
ElMessage({
@ -93,6 +118,10 @@
}
})
}
let loginUserinfo=ref(null);
if(sessionStorage.getItem("LoginUserInfo")){
loginUserinfo.value=JSON.parse(sessionStorage.getItem("LoginUserInfo"))
}
onMounted(()=>{
GetConfig()
})
@ -104,6 +133,9 @@
height: 178px;
display: block;
}
.tishi{
color: #aaa;
}
</style>
<style>
.avatar-uploader .el-upload {

@ -127,7 +127,7 @@
import { ElMessage, ElMessageBox } from 'element-plus'
import DepartmentResourcesSave from '@/components/Yewu/DepartmentResourcesSave.vue'
const groupList_new = computed(() => {
return groupList.value.filter(item => item.id !== 1);
return groupList.value.filter(item => (item.id !== 1 && item.id !== 5));
});
let loading = ref(false);

@ -65,9 +65,12 @@
<el-button type="danger" @click="cancel()"></el-button>
<el-button type="warning" @click="openIframe(2)"></el-button>
<el-button type="primary">报到</el-button>
<el-button style="display: none;" ref="print_shenqingdan_button" v-print="'#shenqingdan'"></el-button>
<el-button @click="print_shenqingdan()" >打印申请单</el-button>
<el-button v-print="'#tablelist'" >打印表格</el-button>
</el-row>
</div>
<el-table :data="tableData" style="width: 100%;" row-key="id" v-loading="loading" ref="tableref"
<el-table :data="tableData" id="tablelist" style="width: 100%;" row-key="id" v-loading="loading" ref="tableref"
@select="handleSelect">
<el-table-column type="selection" width="50" />
<el-table-column prop="list_status" label="状态" width="80">
@ -142,9 +145,7 @@
</div>
<el-dialog v-model="LogShow" title="变更记录" width="50%">
<div>
<el-table :data="LogList" style="width: 100%;" row-key="id">
<el-table-column prop="list_status" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.new_status==0" class="ml-2" type="info"></el-tag>
@ -186,13 +187,22 @@
</div>
</div>
<div style="margin-left: 8px;padding: 8px;display: flex;">
<div>{{group[0].device_id}}</div>
<div>{{group[0].device_name}}</div>
</div>
</div>
</div>
</el-dialog>
<div id="shenqingdan" v-if="shenqingdan_show">
<div v-for="(item,index) in shenqingdan_list" :key="index">
<div style="width: 100%;text-align: center;font-size: 14px;">深圳市南山区妇幼保健院</div>
<div style="width: 100%;text-align: center;font-size: 18px;font-weight: bold;">检查申请单</div>
<div style="width: 100%; border: 1px solid #ccc;padding: 20px;">
<div>检查项目{{item.maininfo.entrust}}</div>
</div>
</div>
</div>
</div>
</template>
@ -210,13 +220,14 @@
DepartmentResourceGetEnableList,
GetServiceDateTime,
GetLoglist,
CheckEntrstItemGroup
CheckEntrstItemGroup,getMainDetail
} from '@/api/api.js'
import {
ElMessage,
ElMessageBox
} from 'element-plus'
let shenqingdan_show=ref(false);
let do_type = ref(0) //12
let loading = ref(false)
let searchInfo = ref({
@ -493,6 +504,47 @@
if(sessionStorage.getItem("LoginUserInfo")){
loginUserinfo.value=JSON.parse(sessionStorage.getItem("LoginUserInfo"))
}
//
let print_shenqingdan_button=ref(null);
let shenqingdan_list=ref([])
const print_shenqingdan=()=>{
if(tableSelected.value.length !==1){
ElMessage.error('请选择1项进行打印')
return false
}
getMainDetail({
regnum: tableSelected.value[0].reg_num,
entrustid: tableSelected.value[0].entrust_id,
episodeid: tableSelected.value[0].episodeid,
appointment_type:4
}).then(res => {
if (res.status) {
let enable=true
shenqingdan_list.value=res.data.info
shenqingdan_list.value.forEach((v,i)=>{
if(v.maininfo.list_status!=1){
ElMessage.error(v.maininfo.entrust+" 不可打印,请重新选择")
enable=false
}
})
if(enable){
shenqingdan_show.value=true
setTimeout(function(){
print_shenqingdan_button.value.$el.click();
shenqingdan_show.value=false
},500)
}
}else{
ElMessage.error(res.msg)
}
})
}
onMounted(() => {
if(loginUserinfo.value.group!=2){
getEnableResource()

@ -6,7 +6,7 @@ import {
sendRequest
} = useHttp();
//let Url='https://service-platform.sixinyun.com'
let Url='http://yijiyuyue'
let Url='https://yiji.yuluo.online/Laravel/public'
let BaseUrl=Url+'/api/'
export const BaseFileUrl=()=>{

@ -56,5 +56,10 @@
},
"usingComponents" : true
},
"vueVersion" : "3"
"vueVersion" : "3",
"h5" : {
"router" : {
"base" : "/h5/"
}
}
}

@ -83,7 +83,7 @@
do_type:do_type,
appointment_type:2,
regnum:item.reg_num,
entrustid:item.entrust_id,
entrustid:[item.entrust_id],
episodeid:item.episodeid
}
uni.navigateTo({

@ -59,7 +59,7 @@
if(res.status){
List.value=res.data.plan_list
MianInfo.value=res.data.mainInfo
SearchInfo.value.mainlistid=MianInfo.value.id
SearchInfo.value.mainlistid=[MianInfo.value.id]
}
})
}
@ -97,7 +97,6 @@
onLoad((option)=>{
SearchInfo.value = JSON.parse(decodeURIComponent(option.data))
var today = new Date();
// YYYY-MM-DD
function formatDate(date) {

@ -0,0 +1 @@
.CheckItemMain[data-v-8bb9b7a5]{height:calc(100vh - 3.75rem);background:radial-gradient(circle at top center,#dcdcdc 30%,#e3e3e3,transparent 2%);padding-top:.9375rem}.userInfo[data-v-8bb9b7a5]{background-color:#33cdc9;margin-left:.625rem;margin-right:.625rem;border-radius:.9375rem;padding:1.25rem 1.25rem 0;border:.03125rem solid #fff}.userInfo .row[data-v-8bb9b7a5]{margin-top:.625rem;font-size:1rem;color:#fff}.userInfo .value[data-v-8bb9b7a5]{margin-left:.625rem}.userInfo .label[data-v-8bb9b7a5]{text-align:right;width:30%}.row[data-v-8bb9b7a5]{display:flex}.title[data-v-8bb9b7a5]{font-weight:700;color:#fff}.date[data-v-8bb9b7a5]{text-align:center;font-size:.9375rem;background-color:#fff;padding:.625rem 1.875rem;border-radius:.9375rem;box-shadow:0 .3125rem .3125rem #add2d1;color:#333;position:relative;top:1.5625rem;white-space:nowrap}.list[data-v-8bb9b7a5]{padding:.625rem}.info[data-v-8bb9b7a5]{margin-top:1.875rem;padding:.625rem;background-color:#fff;border-radius:.625rem;margin-bottom:-.625rem}.item_title[data-v-8bb9b7a5]{color:#999;border-bottom:.03125rem solid #ccc;padding:.625rem}.item_info[data-v-8bb9b7a5]{padding:.9375rem 1.5625rem;color:#333}.item_info uni-view[data-v-8bb9b7a5]{margin-top:.625rem}.item_value[data-v-8bb9b7a5]{font-weight:700}.button[data-v-8bb9b7a5]{width:100%;height:1.875rem;line-height:1.875rem;border-radius:.625rem;background-color:#33cdc9;text-align:center;color:#fff;margin-top:.625rem;margin-left:10px;margin-right:10px}.red[data-v-8bb9b7a5]{background-color:coral}.blue[data-v-8bb9b7a5]{background-color:#39a6cd}.button_row[data-v-8bb9b7a5]{display:flex;justify-content:space-between}.nodata[data-v-8bb9b7a5]{text-align:center;margin-top:3.125rem;color:#ccc}

@ -0,0 +1 @@
.PlanListMain[data-v-e1ec9a04]{height:calc(100vh - 3.75rem);background:radial-gradient(circle at top center,#dcdcdc 30%,#e3e3e3,transparent 2%);padding-top:.9375rem}.userInfo[data-v-e1ec9a04]{background-color:#33cdc9;margin-left:.625rem;margin-right:.625rem;border-radius:.9375rem;padding:1.25rem 1.25rem 0;border:.03125rem solid #fff}.userInfo .row[data-v-e1ec9a04]{margin-top:.625rem;font-size:1rem;color:#fff}.userInfo .value[data-v-e1ec9a04]{margin-left:.625rem}.userInfo .label[data-v-e1ec9a04]{text-align:right;width:30%}.row[data-v-e1ec9a04]{display:flex}.date[data-v-e1ec9a04]{text-align:center;font-size:.9375rem;background-color:#fff;padding:.625rem 1.875rem;border-radius:.9375rem;box-shadow:0 .3125rem .3125rem #add2d1;color:#333;position:relative;top:1.5625rem;white-space:nowrap}.title[data-v-e1ec9a04]{font-weight:700;color:#fff;font-size:1rem}.list[data-v-e1ec9a04]{margin-top:1.875rem;padding:.625rem}.info[data-v-e1ec9a04]{background-color:#fff;padding:1.25rem 1.25rem .625rem;display:flex;justify-content:space-between;border-radius:.625rem;color:#333}.info .row[data-v-e1ec9a04]{margin-bottom:.625rem}.info .row .value[data-v-e1ec9a04]{font-weight:700}.info .right .right_top[data-v-e1ec9a04]{display:flex;justify-content:center}.info .right .right_bottom[data-v-e1ec9a04]{display:flex;justify-content:flex-end;margin-top:.625rem}.button[data-v-e1ec9a04]{width:2.1875rem;height:1.875rem;text-align:center;line-height:1.875rem;background-color:#33cdc9;padding:.625rem;border-radius:.625rem;color:#fff}

@ -0,0 +1 @@
.uni-link[data-v-45d57582]{cursor:pointer}.uni-link--withline[data-v-45d57582]{text-decoration:underline}.container[data-v-a60c8e9c]{padding:20px;font-size:14px;line-height:24px}

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{h as t,N as e,Q as a,R as s,x as n}from"./index-4574ca9e.js";const{isLoading:o,sendRequest:i}=function(){const o=t(!1);return{isLoading:o,sendRequest:function(t){o.value=!0,e({title:"加载中"});let i=function(t){return t.header={Authorization:"Bearer "+sessionStorage.getItem("access_token"),"Content-Type":"application/json"},t}(t);return new Promise(((t,e)=>{a({...i,success:e=>{let a=200===(i=e).statusCode?(0==i.data.status&&n({title:i.data.msg,icon:"none"}),i.data):(n({title:"请求失败,请稍后重试",icon:"none"}),Promise.reject(i.data));var i;o.value=!1,s(),t(a)},fail:t=>{o.value=!1,s(),e(t)}})}))}}}();let u="https://yiji.yuluo.online/Laravel/public/api/";const r=t=>i({url:u+"H5/Login",method:"POST",data:t}),l=t=>i({url:u+"v1/H5/EntrustGetList",method:"POST",data:t}),d=t=>i({url:u+"v1/H5/GetEnablePlan",method:"POST",data:t}),c=t=>i({url:u+"v1/H5/H5_YuYue",method:"POST",data:t}),m=t=>i({url:u+"v1/H5/H5_CancelYuYue",method:"POST",data:t});export{l as E,d as G,m as H,r as L,c as a};

@ -0,0 +1 @@
import{h as e,o as a,d as t,w as s,e as l,f as n,a as u,u as i,c as o,j as d,F as c,g as _,t as r,k as f,l as m,p,s as g}from"./index-4574ca9e.js";import{_ as v}from"./uni-datetime-picker.1dd0594b.js";import{_ as k,o as b,r as h}from"./uni-app.es.952bcabe.js";import{E as y,H as w}from"./index.eefdbc54.js";const C=k({__name:"CheckItemMainList",setup(k){let C=e({dateRange:["2021-05-01","2049-01-01"]}),M=e([]);const x=()=>{y({searchInfo:C.value}).then((e=>{console.log(e),e.status&&(M.value=e.data.list)}))},D=e=>{C.value.dateRange=e,x()},I=(e,a)=>{let t={do_type:e,appointment_type:2,regnum:a.reg_num,entrustid:[a.entrust_id],episodeid:a.episodeid};p({url:"/pages/PlanList?data="+encodeURIComponent(JSON.stringify(t))})};return b((()=>{var e=function(){var e=new Date;function a(e){return e.getFullYear()+"-"+("0"+(e.getMonth()+1)).slice(-2)+"-"+("0"+e.getDate()).slice(-2)}var t,s=a(e),l=a((t=e,new Date(t.getFullYear(),t.getMonth()-1,t.getDate()))),n=a(function(e){return new Date(e.getFullYear(),e.getMonth()+1,e.getDate())}(e));return{currentDate:s,previousMonth:l,nextMonth:n}}();C.value.dateRange=[e.previousMonth,e.nextMonth],x()})),(e,p)=>{const k=l,b=h(_("uni-datetime-picker"),v);return a(),t(k,{class:"CheckItemMain"},{default:s((()=>[n(k,{class:"head"}),n(k,{class:"userInfo"},{default:s((()=>[n(k,{class:"title"},{default:s((()=>[u("患者信息")])),_:1}),n(k,{class:"row"},{default:s((()=>[n(k,{class:"label"},{default:s((()=>[u("姓名:")])),_:1}),n(k,{class:"value"},{default:s((()=>[u("张三")])),_:1})])),_:1}),n(k,{class:"row"},{default:s((()=>[n(k,{class:"label"},{default:s((()=>[u("性别:")])),_:1}),n(k,{class:"value"},{default:s((()=>[u("女")])),_:1})])),_:1}),n(k,{class:"row"},{default:s((()=>[n(k,{class:"label"},{default:s((()=>[u("手机号:")])),_:1}),n(k,{class:"value"},{default:s((()=>[u("99999")])),_:1})])),_:1}),n(k,{class:"row"},{default:s((()=>[n(k,{class:"label"},{default:s((()=>[u("注册号:")])),_:1}),n(k,{class:"value"},{default:s((()=>[u("99999")])),_:1})])),_:1}),n(k,{class:"date"},{default:s((()=>[n(k,{class:"datetime"},{default:s((()=>[n(b,{modelValue:i(C).dateRange,"onUpdate:modelValue":p[0]||(p[0]=e=>i(C).dateRange=e),type:"daterange",onChange:D},null,8,["modelValue"])])),_:1})])),_:1})])),_:1}),i(M).length>0?(a(),t(k,{key:0,class:"list"},{default:s((()=>[(a(!0),o(c,null,d(i(M),((e,l)=>(a(),t(k,{class:"info"},{default:s((()=>[n(k,{class:"item_title"},{default:s((()=>[u("检查项目:"+r(e.entrust),1)])),_:2},1024),n(k,{class:"item_info"},{default:s((()=>[n(k,null,{default:s((()=>[u("医嘱时间:"),f("span",{class:"item_value"},r(e.entrust_date),1)])),_:2},1024),n(k,null,{default:s((()=>[u("申请科室:"),f("span",{class:"item_value"},r(e.reservation_department),1)])),_:2},1024),n(k,null,{default:s((()=>[u("状态: "),0==e.list_status?(a(),o("span",{key:0,class:"item_value"},"待申请")):m("",!0),1==e.list_status?(a(),o("span",{key:1,class:"item_value"},"已预约")):m("",!0),2==e.list_status?(a(),o("span",{key:2,class:"item_value"},"已登记")):m("",!0),3==e.list_status?(a(),o("span",{key:3,class:"item_value"},"已完成")):m("",!0)])),_:2},1024),1==e.list_status?(a(),t(k,{key:0},{default:s((()=>[u("预约时段:"),f("span",{class:"item_value"},r(e.reservation_date)+" "+r(e.period_begin_time.substring(0,5))+"~"+r(e.period_end_time.substring(0,5)),1)])),_:2},1024)):m("",!0),0==e.list_status?(a(),t(k,{key:1,class:"button_row"},{default:s((()=>[n(k,{class:"button",onClick:a=>I(1,e)},{default:s((()=>[u("预 约")])),_:2},1032,["onClick"])])),_:2},1024)):m("",!0),1==e.list_status?(a(),t(k,{key:2,class:"button_row"},{default:s((()=>[n(k,{class:"button red",onClick:a=>(e=>{g({cancelText:"取消",confirmText:"确定",title:"提示",content:"确定取消预约吗?",success:function(a){a.confirm&&w({MainListId:e.id}).then((e=>{console.log(e),e.status&&x()}))}})})(e)},{default:s((()=>[u("取 消")])),_:2},1032,["onClick"]),n(k,{class:"button blue",onClick:a=>I(2,e)},{default:s((()=>[u("改 约")])),_:2},1032,["onClick"])])),_:2},1024)):m("",!0)])),_:2},1024)])),_:2},1024)))),256))])),_:1})):(a(),t(k,{key:1,class:"nodata"},{default:s((()=>[u(" 暂无记录 ")])),_:1}))])),_:1})}}},[["__scopeId","data-v-8bb9b7a5"]]);export{C as default};

@ -0,0 +1 @@
import{q as e,o as s,d as t,v as o,e as a}from"./index-4574ca9e.js";import{L as n}from"./index.eefdbc54.js";const r={__name:"Login",setup:r=>(e((()=>{n().then((e=>{console.log(e),e.status&&(sessionStorage.setItem("access_token",e.data.token),sessionStorage.setItem("refresh_token",e.data.refresh_token),o({url:"/pages/CheckItemMainList"}))}))})),(e,o)=>{const n=a;return s(),t(n)})};export{r as default};

@ -0,0 +1 @@
import{h as a,o as e,d as s,w as t,e as l,f as u,u as n,a as d,t as i,l as c,c as o,j as _,F as r,g as f,k as m,s as p,x as v,y as g}from"./index-4574ca9e.js";import{_ as b}from"./uni-datetime-picker.1dd0594b.js";import{_ as h,o as k,r as w}from"./uni-app.es.952bcabe.js";import{G as x,a as j}from"./index.eefdbc54.js";const y=h({__name:"PlanList",setup(h){let y=a({date:""}),C=a([]),I=a(null);const L=()=>{x({...y.value}).then((a=>{a.status&&(C.value=a.data.plan_list,I.value=a.data.mainInfo,y.value.mainlistid=[I.value.id])}))},M=a=>{y.value.date=a,L()};return k((a=>{y.value=JSON.parse(decodeURIComponent(a.data));var e,s=new Date;y.value.date=(e=s).getFullYear()+"-"+("0"+(e.getMonth()+1)).slice(-2)+"-"+("0"+e.getDate()).slice(-2),L()})),(a,h)=>{const k=l,x=w(f("uni-datetime-picker"),b);return e(),s(k,{class:"PlanListMain"},{default:t((()=>[u(k,{class:"head"}),n(I)?(e(),s(k,{key:0,class:"userInfo"},{default:t((()=>[u(k,{class:"title"},{default:t((()=>[d("选择预约日期及时段")])),_:1}),u(k,{class:"row"},{default:t((()=>[u(k,{class:"label"},{default:t((()=>[d("登记号:")])),_:1}),u(k,{class:"value"},{default:t((()=>[d(i(n(I).reg_num),1)])),_:1})])),_:1}),u(k,{class:"row"},{default:t((()=>[u(k,{class:"label"},{default:t((()=>[d("医嘱:")])),_:1}),u(k,{class:"value"},{default:t((()=>[d(i(n(I).entrust),1)])),_:1})])),_:1}),u(k,{class:"date"},{default:t((()=>[u(k,{class:"datetime"},{default:t((()=>[u(x,{modelValue:n(y).date,"onUpdate:modelValue":h[0]||(h[0]=a=>n(y).date=a),"clear-icon":!1,type:"date",onChange:M},null,8,["modelValue"])])),_:1})])),_:1})])),_:1})):c("",!0),u(k,{class:"list"},{default:t((()=>[(e(!0),o(r,null,_(n(C),((a,l)=>(e(),s(k,{class:"info"},{default:t((()=>[u(k,null,{default:t((()=>[u(k,{class:"row"},{default:t((()=>[u(k,{class:"label"},{default:t((()=>[d("执行科室:")])),_:1}),u(k,{class:"value"},{default:t((()=>[d(i(n(I).implement_department),1)])),_:1})])),_:1}),u(k,{class:"row"},{default:t((()=>[u(k,{class:"label"},{default:t((()=>[d("资源:")])),_:1}),u(k,{class:"value"},{default:t((()=>[d(i(a.department_resources_name),1)])),_:2},1024)])),_:2},1024),u(k,{class:"row"},{default:t((()=>[u(k,{class:"label"},{default:t((()=>[d("时间段:")])),_:1}),a.begin_time?(e(),s(k,{key:0,class:"value"},{default:t((()=>[d(i(a.begin_time.substring(0,5))+"~"+i(a.end_time.substring(0,5)),1)])),_:2},1024)):c("",!0)])),_:2},1024)])),_:2},1024),u(k,{class:"right"},{default:t((()=>[u(k,{class:"right_top"},{default:t((()=>[u(k,{class:"button",onClick:e=>(a=>{p({cancelText:"取消",confirmText:"确定",title:"提示",content:"确定预约 "+y.value.date+" "+a.begin_time.substring(0,5)+"~"+a.end_time.substring(0,5)+" 时段吗?",success:function(e){e.confirm&&(y.value.planid=a.id,j({...y.value}).then((a=>{a.status&&(v({title:"预约成功"}),setTimeout((function(){g({url:"/pages/CheckItemMainList"})}),1e3))})))}})})(a)},{default:t((()=>[d("确认")])),_:2},1032,["onClick"])])),_:2},1024),u(k,{class:"right_bottom"},{default:t((()=>[d("已约/总数:"),m("span",{style:{color:"darkturquoise"}},i(a.used_count),1),d("/"+i(a.count),1)])),_:2},1024)])),_:2},1024)])),_:2},1024)))),256))])),_:1})])),_:1})}}},[["__scopeId","data-v-e1ec9a04"]]);export{y as default};

@ -0,0 +1 @@
import{m as e,o as t,c as n,r as i,a as s,t as o,n as a,b as r,d as l,w as d,i as u,e as f,f as h,g as c}from"./index-4574ca9e.js";import{_ as p,r as w}from"./uni-app.es.952bcabe.js";const m=p({name:"uniLink",props:{href:{type:String,default:""},text:{type:String,default:""},download:{type:String,default:""},showUnderLine:{type:[Boolean,String],default:!0},copyTips:{type:String,default:"已自动复制网址,请在手机浏览器里粘贴该网址"},color:{type:String,default:"#999999"},fontSize:{type:[Number,String],default:14}},computed:{isShowA(){return this._isH5=!0,!(!this.isMail()&&!this.isTel()||!0!==this._isH5)}},created(){this._isH5=null},methods:{isMail(){return this.href.startsWith("mailto:")},isTel(){return this.href.startsWith("tel:")},openURL(){window.open(this.href)},makePhoneCall(t){e({phoneNumber:t})}}},[["render",function(e,f,h,c,p,w){const m=u;return w.isShowA?(t(),n("a",{key:0,class:a(["uni-link",{"uni-link--withline":!0===h.showUnderLine||"true"===h.showUnderLine}]),href:h.href,style:r({color:h.color,fontSize:h.fontSize+"px"}),download:h.download},[i(e.$slots,"default",{},(()=>[s(o(h.text),1)]),!0)],14,["href","download"])):(t(),l(m,{key:1,class:a(["uni-link",{"uni-link--withline":!0===h.showUnderLine||"true"===h.showUnderLine}]),style:r({color:h.color,fontSize:h.fontSize+"px"}),onClick:w.openURL},{default:d((()=>[i(e.$slots,"default",{},(()=>[s(o(h.text),1)]),!0)])),_:3},8,["class","style","onClick"]))}],["__scopeId","data-v-45d57582"]]);const S=p({data:()=>({href:"https://uniapp.dcloud.io/component/README?id=uniui"}),methods:{}},[["render",function(e,n,i,o,a,r){const p=f,S=u,y=w(c("uni-link"),m);return t(),l(p,{class:"container"},{default:d((()=>[h(p,{class:"intro"},{default:d((()=>[s("本项目已包含uni ui组件无需import和注册可直接使用。在代码区键入字母u即可通过代码助手列出所有可用组件。光标置于组件名称处按F1即可查看组件文档。")])),_:1}),h(S,{class:"intro"},{default:d((()=>[s("详见:")])),_:1}),h(y,{href:a.href,text:a.href},null,8,["href","text"])])),_:1})}],["__scopeId","data-v-a60c8e9c"]]);export{S as default};

@ -0,0 +1 @@
import{K as s,L as o,O as t,M as n}from"./index-4574ca9e.js";const r=(s,o)=>{const t=s.__vccOpts||s;for(const[n,r]of o)t[n]=r;return t};function a(s,o){return"string"==typeof s?o:s}const c=(t=>(r,a=o())=>{!n&&s(t,r,a)})(t);export{r as _,c as o,a as r};

File diff suppressed because one or more lines are too long

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,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="/h5/assets/uni.5555c8ac.css">
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>h5</title>
<!--preload-links-->
<!--app-context-->
<script type="module" crossorigin src="/h5/assets/index-4574ca9e.js"></script>
<link rel="stylesheet" href="/h5/assets/index-d16efac4.css">
</head>
<body>
<div id="app"><!--app-html--></div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

@ -0,0 +1,20 @@
@font-face {
font-family: "customicons"; /* Project id 2878519 */
src:url('/static/customicons.ttf') format('truetype');
}
.customicons {
font-family: "customicons" !important;
}
.youxi:before {
content: "\e60e";
}
.wenjian:before {
content: "\e60f";
}
.zhuanfa:before {
content: "\e610";
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Loading…
Cancel
Save