diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanController.php
index 14ddfe9..525daf1 100644
--- a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanController.php
+++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanController.php
@@ -33,32 +33,33 @@ class PlanController extends Controller
}
$model = DB::table('plan_model as a')->where(['a.id' => $params['model_id'], 'a.is_del' => 0, 'a.status' => 1])->first();
if (!$model) return \Yz::echoError1('模板不可用');
- $planType = DB::table('plan_type as a')->where(['a.id' => $model->plan_type, 'a.is_del' => 0, 'a.status' => 1])->first();
- if (!$planType) return \Yz::echoError1('号源类型不可用');
+// $planType = DB::table('plan_type as a')->where(['a.id' => $model->plan_type, 'a.is_del' => 0, 'a.status' => 1])->first();
+// if (!$planType) return \Yz::echoError1('号源类型不可用');
//查询此时间段内是否有已经生成的号源
- $cha=DB::table('plans')->whereBetween('date',$Info['dateRange'])->get();
- if(count($cha)>0){
- return \Yz::return(false,'号源重复',['list'=>$cha]);
+ $cha = DB::table('plans')->whereBetween('date', $Info['dateRange'])->get();
+ if (count($cha) > 0) {
+ return \Yz::return(false, '号源重复', ['list' => $cha]);
}
//获取模板的全部时间点
- $s=new TimeService();
- $timelist=$s->TimePointsArr($model->start_time,$model->end_time,$model->interval_time);
- if(count($timelist)<1) return \Yz::echoError1('模板时间点不能为空');
+// $s=new TimeService();
+// $timelist=$s->TimePointsArr($model->start_time,$model->end_time,$model->interval_time);
+ $timelist = DB::table('plan_model_time')->where(['model_id' => $params['model_id']])->get();
+ if (count($timelist) < 1) return \Yz::echoError1('模板时间点不能为空');
$startDate = new DateTime($Info['dateRange'][0]);
$endDate = new DateTime($Info['dateRange'][1]);
$currentDate = $startDate;
- $success_count=0;
+ $success_count = 0;
while ($currentDate <= $endDate) {
//循环生成
- $date_ymd=$currentDate->format('Y-m-d');
+ $date_ymd = $currentDate->format('Y-m-d');
//判断节假日是否生成
- $s_day=DB::table('plan_holiday')->select('*','type as tp')->where(['date'=>$date_ymd])->first();
- if(!!$s_day){
- if($s_day->tp==1 and $params['workday_create']===0){
+ $s_day = DB::table('plan_holiday')->select('*', 'type as tp')->where(['date' => $date_ymd])->first();
+ if (!!$s_day) {
+ if ($s_day->tp == 1 and $params['workday_create'] === 0) {
$currentDate->modify('+1 day');
continue;
}
- if($s_day->tp==2 and $params['holiday_create']===0){
+ if ($s_day->tp == 2 and $params['holiday_create'] === 0) {
$currentDate->modify('+1 day');
continue;
}
@@ -67,95 +68,145 @@ class PlanController extends Controller
//获取星期几 星期1=1 星期日=7
$dayOfWeek = $currentDate->format('N');
//如果星期匹配上了
- if(in_array($dayOfWeek, $params['week'])) {
- foreach ($timelist as $key=>$time){
- $type=1; //正常
- if(in_array($key,json_decode($model->y_number,true))){
- $type=0;//预留
- }
- $data=[
- 'model_id'=>$model->id,
- 'date'=>$date_ymd,
- 'week'=>$dayOfWeek,
- 'time'=>$time,
- 'type'=>$type,
- 'plan_number'=>implode('', explode(':', $time)),
- 'is_vip'=>$planType->is_vip,
- 'use_type'=>$planType->use_type,
- 'sex'=>$planType->sex,
- 'checkup_type_id'=>$planType->checkup_type_id,
- 'amount_limit1'=>$planType->amount_limit1,
- 'amount_limit2'=>$planType->amount_limit2,
- 'hospital_id'=>$model->hospital_id,
- 'status'=>1,
- 'is_del'=>0
+ if (in_array($dayOfWeek, $params['week'])) {
+ foreach ($timelist as $key => $time) {
+ $planType=null;
+ if(isset( $time->plan_type_id)){
+ $planType = DB::table('plan_type as a')->where(['a.id' => $time->plan_type_id, 'a.is_del' => 0, 'a.status' => 1])->first();
+ if (!$planType) return \Yz::echoError1('号源类型不可用');
+ }
- ];
- $i=DB::table('plans')->insert($data);
- if($i){
- $success_count++;
- }
- }
+ $data = [
+ 'model_id' => $model->id,
+ 'date' => $date_ymd,
+ 'week' => $dayOfWeek,
+ 'time' => $time->time,
+ 'type' => $time->type,
+ 'plan_number' => implode('', explode(':', $time->time)),
+ 'is_vip' => empty($planType)?null: $planType->is_vip,
+ 'use_type' => empty($planType)?null:$planType->use_type,
+ 'sex' => empty($planType)?null:$planType->sex,
+ 'checkup_type_id' => empty($planType)?null:$planType->checkup_type_id,
+ 'amount_limit1' =>empty($planType)?null: $planType->amount_limit1,
+ 'amount_limit2' =>empty($planType)?null: $planType->amount_limit2,
+ 'hospital_id' => $model->hospital_id,
+ 'status' => 1,
+ 'is_del' => 0
+
+ ];
+ $i = DB::table('plans')->insert($data);
+ if ($i) {
+ $success_count++;
+ }
+ }
}
// 日期加一天
$currentDate->modify('+1 day');
}
- if($success_count>0){
- return \Yz::Return(true,'',['success_count'=>$success_count]);
- }else{
- return \Yz::echoError1('没有计划被创建');
- }
+ if ($success_count > 0) {
+ return \Yz::Return(true, '', ['success_count' => $success_count]);
+ } else {
+ return \Yz::echoError1('没有计划被创建');
+ }
}
+
public function GetList()
{
- $page =request('page');
- $pageSize =request('pageSize');
- $searchInfo=request('searchInfo');
- $list=DB::table('plans as a')
- // ->leftJoin('plan_type as b','a.plan_type','=','b.id')
- // ->select('a.*','b.name as plan_type_name')
- ->where(['a.is_del'=>0]);
- if(!isset($searchInfo['date'])){
- $searchInfo['date']=date('Y-m-d');
+ $page = request('page');
+ $pageSize = request('pageSize');
+ $searchInfo = request('searchInfo');
+ $list = DB::table('plans as a')
+ // ->leftJoin('plan_type as b','a.plan_type','=','b.id')
+ // ->select('a.*','b.name as plan_type_name')
+ ->where(['a.is_del' => 0]);
+ if (!isset($searchInfo['date'])) {
+ $searchInfo['date'] = date('Y-m-d');
}
- $list=$list->where(['a.date'=>$searchInfo['date']]);
- $count=$list->count();
- $list=$list ->orderBy('a.id', 'asc')->get();
- return \Yz::Return(true,'查询完成',['list'=>$list,'count'=>$count,'date'=> $searchInfo['date']]);
+ $list = $list->where(['a.date' => $searchInfo['date']]);
+ $count = $list->count();
+ $list = $list->orderBy('a.id', 'asc')->get();
+ return \Yz::Return(true, '查询完成', ['list' => $list, 'count' => $count, 'date' => $searchInfo['date']]);
}
+
public function GetDetail()
{
- $id =request('id');
- $info=DB::table('plans')->where(['id'=>$id])->first();
- if(!!$info){
- $info->checkup_type_id=json_decode($info->checkup_type_id,true);
- return \Yz::Return(true,'查询完成',['info'=>$info]);
- }else{
+ $id = request('id');
+ $info = DB::table('plans')->where(['id' => $id])->first();
+ if (!!$info) {
+ if(empty($info->checkup_type_id)){
+ $info->checkup_type_id='[]';
+ }
+ $info->checkup_type_id = json_decode($info->checkup_type_id, true);
+ return \Yz::Return(true, '查询完成', ['info' => $info]);
+ } else {
return \Yz::echoError1('查询失败');
}
}
+
//更新保存
public function Save()
{
- $info =request('info');
- if(isset($info['id'])){
- $info['checkup_type_id']= isset($Info['checkup_type_id']) ? json_encode($Info['checkup_type_id']) : null;
- $u=DB::table('plans')->where(['id'=>$info['id']])->update([
+ $info = request('info');
+ if (isset($info['id'])) {
+ $info['checkup_type_id'] = isset($info['checkup_type_id']) ? json_encode($info['checkup_type_id']) : null;
+
+ $u = DB::table('plans')->where(['id' => $info['id']])->update([
+ 'is_vip' => $info['is_vip'],
+ 'use_type' => $info['use_type'],
+ 'sex' => $info['sex'],
+ 'checkup_type_id' => $info['checkup_type_id'],
+ 'amount_limit1' => $info['amount_limit1'],
+ 'amount_limit2' => $info['amount_limit2'],
+ 'status' => $info['status'],
+ ]);
+ if ($u) {
+ return \Yz::Return(true, '保存成功', []);
+ } else {
+ return \Yz::echoError1('操作失败');
+ }
+ }
+ }
+ //批量更新号源类型
+ public function BatchUpdatePlanType(){
+ $ids = request('ids');
+ $type = request('type');
+ $info = request('info');
+
+ $cha =DB::table('plans')->whereIn('id', $ids)->where(['status'=>2])->get();
+ if(count($cha) >0){
+ return \Yz::echoError1('有号源被占用,不能执行此操作');
+ }
+ if($type==0){
+ $data=[
+ 'is_vip'=>null,
+ 'use_type'=>null,
+ 'sex'=>null,
+ 'checkup_type_id'=>[],
+ 'amount_limit1'=>null,
+ 'amount_limit2'=>null,
+ 'type'=>0,
+ ];
+ }
+ if($type==1){
+ if(empty($info['checkup_type_id'])) return \Yz::echoError1('体检类型不能为空');
+ $data=[
'is_vip'=>$info['is_vip'],
'use_type'=>$info['use_type'],
'sex'=>$info['sex'],
'checkup_type_id'=>$info['checkup_type_id'],
- 'amount_limit1'=>$info['amount_limit1'],
- 'amount_limit2'=>$info['amount_limit2'],
- 'status'=>$info['status'],
- ]);
- if($u){
- return \Yz::Return(true,'保存成功',[]);
- }else{
- return \Yz::echoError1('操作失败');
- }
+ 'amount_limit1'=>isset($info['amount_limit1'])?$info['amount_limit1']:0,
+ 'amount_limit2'=>isset($info['amount_limit2'])?$info['amount_limit2']:0,
+ 'type'=>1,
+ ];
}
+ $u=DB::table('plans')->whereIn('id', $ids)->update($data);
+ if ($u){
+ return \Yz::Return(true, '操作成功', []);
+ }else{
+ return \Yz::echoError1('操作失败');
+ }
+
}
}
diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php
index 8749b93..93e604a 100644
--- a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php
+++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanModelController.php
@@ -46,6 +46,8 @@ class PlanModelController extends Controller
public function Save()
{
$Info =request('Info');
+ $Timelist =request('Timelist');
+
$params = [
'hospital_id' => isset($Info['hospital_id']) ? $Info['hospital_id'] :null,
'name' => isset($Info['name']) ? $Info['name'] : null,
@@ -55,7 +57,7 @@ class PlanModelController extends Controller
'count' => isset($Info['count']) ? $Info['count'] : 0,
'status'=>isset($Info['status']) ? $Info['status'] : 0,
];
- $requiredFields = ['hospital_id'=>'医院','name'=>'名称','interval_time'=>'时间间隔','plan_type'=>'号源类型'];
+ $requiredFields = ['hospital_id'=>'医院','name'=>'名称','interval_time'=>'时间间隔'];
// 判断是否为空
foreach ($requiredFields as $key=> $field) {
if (!isset($params[$key]) || $params[$key] === null) {
@@ -69,15 +71,34 @@ class PlanModelController extends Controller
$params['end_time']=$Info['TimeRange'][1];
$do=false;
$table=DB::table('plan_model');
+ $table_model_time=DB::table('plan_model_time');
+ DB::beginTransaction();
if($Info['id']==0){
- $do=$table->insert($params);
+ $model_id=$table->insertGetId($params);
}
if($Info['id']>0){
- $do=$table->where(['id'=>$Info['id']])->update($params);
+ $model_id=$Info['id'];
+ $table->where(['id'=>$Info['id']])->update($params);
+ }
+ $model_time_data=[];
+ foreach ($Timelist as $key=>$value){
+ $model_time_data[]=[
+ 'type'=>isset($value['plan_type_id']) ? 1 : 0,
+ 'model_id'=>$model_id,
+ 'time'=>$value['time'],
+ 'type_color'=>isset($value['type_color']) ? $value['type_color'] : null,
+ 'plan_type_id'=>isset($value['plan_type_id']) ? $value['plan_type_id'] : null,
+ ];
+ }
+ if(count($model_time_data)>0){
+ DB::table('plan_model_time')->where(['model_id'=>$model_id])->delete();
+ $do=$table_model_time->insert($model_time_data);
}
if($do){
+ DB::commit();
return \Yz::Return(true,'操作成功',[]);
}else{
+ DB::rollBack();
return \Yz::echoError1('操作失败');
}
@@ -89,6 +110,8 @@ class PlanModelController extends Controller
if(!!$info){
$info->TimeRange=[$info->start_time,$info->end_time];
$info->y_number=json_decode($info->y_number,true);
+ $list=DB::table('plan_model_time as a')->where(['model_id'=>$id])->get();
+ $info->list=$list;
return \Yz::Return(true,'查询完成',$info);
}else{
return \Yz::echoError1('查询失败');
diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanTypeController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanTypeController.php
index 85c45ca..72cfb11 100644
--- a/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanTypeController.php
+++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PlanTypeController.php
@@ -20,8 +20,9 @@ class PlanTypeController extends Controller
'amount_limit1' => isset($Info['amount_limit1']) ? $Info['amount_limit1'] : 0,
'amount_limit2' => isset($Info['amount_limit2']) ? $Info['amount_limit2'] : 0,
'status'=>isset($Info['status']) ? $Info['status'] : 0,
+ 'color'=>isset($Info['color']) ? $Info['color'] : null,
];
- $requiredFields = ['name'=>'名称','is_vip'=>'vip类型','use_type'=>'个检/团检类型','checkup_type_id'=>'体检类型','status'=>'状态'];
+ $requiredFields = ['name'=>'名称','is_vip'=>'vip类型','use_type'=>'个检/团检类型','checkup_type_id'=>'体检类型','status'=>'状态','color'=>'颜色'];
// 判断是否为空
foreach ($requiredFields as $key=> $field) {
if (!isset($params[$key]) || $params[$key] === null) {
diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php
index 3295439..49bdc02 100644
--- a/Laravel/routes/api.php
+++ b/Laravel/routes/api.php
@@ -90,6 +90,7 @@ Route::group(['middleware' => ['checktoken', 'log'], 'prefix' => 'v1'], function
Route::post('admin/PlanGetList', 'App\Http\Controllers\API\Admin\YeWu\PlanController@GetList');//号源列表
Route::post('admin/PlanGetDetail', 'App\Http\Controllers\API\Admin\YeWu\PlanController@GetDetail');//号源详情
Route::post('admin/PlanSave', 'App\Http\Controllers\API\Admin\YeWu\PlanController@Save');//保存号源详情
+ Route::post('admin/PlanBatchUpdatePlanType', 'App\Http\Controllers\API\Admin\YeWu\PlanController@BatchUpdatePlanType');//保存号源详情
Route::post('admin/ComboGetList', 'App\Http\Controllers\API\Admin\YeWu\ComboController@GetList');//获取套餐列表
Route::post('admin/ComboGetDetail', 'App\Http\Controllers\API\Admin\YeWu\ComboController@GetDetail');//获取套餐详情
diff --git a/admin/src/api/api.js b/admin/src/api/api.js
index 7800388..b2cc229 100644
--- a/admin/src/api/api.js
+++ b/admin/src/api/api.js
@@ -171,6 +171,10 @@ export const PlanGetDetail = (data = {}) => {
export const PlanSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanSave', data: data })
}
+//号源批量更新
+export const PlanBatchUpdatePlanType = (data = {}) => {
+ return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/PlanBatchUpdatePlanType', data: data })
+}
//获取套餐列表
export const ComboGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboGetList', data: data })
diff --git a/admin/src/views/PlanMngr/Plan.vue b/admin/src/views/PlanMngr/Plan.vue
index f9a5847..0301ca6 100644
--- a/admin/src/views/PlanMngr/Plan.vue
+++ b/admin/src/views/PlanMngr/Plan.vue
@@ -14,6 +14,8 @@
查 询
修 改
删 除
+ 设为正常号
+ 设为预留号
@@ -103,7 +105,7 @@
ElMessageBox
} from 'element-plus'
import {
- PlanGetList,PlanGetDetail,CheckUpTypeGetEnableList,PlanSave
+ PlanGetList,PlanGetDetail,CheckUpTypeGetEnableList,PlanSave,PlanBatchUpdatePlanType
} from '@/api/api.js'
let loading = ref(false)
let searchInfo = ref({})
@@ -137,6 +139,8 @@
let Info=ref({});
let dialogVisible=ref(false);
const Edit=()=>{
+
+ dotype.value='one'
let selected_list=[];
list.value.forEach((v,i)=>{
if(v.selected!=undefined && v.selected==true){
@@ -179,10 +183,51 @@
}
})
}
+ let dotype=ref('one');
const Save=()=>{
+ if(dotype.value=='one'){
+ loading.value = true
+ PlanSave({
+ info: Info.value,
+ }).then(res => {
+ loading.value = false
+ if (res.status) {
+ dialogVisible.value=false
+ GetList()
+ } else {
+ ElMessage.error(res.msg)
+ }
+ })
+ }
+ if(dotype.value=='batch'){
+ BatchUpdateFunc(1,Info.value)
+ }
+ }
+ const BatchUpdate=(type)=>{
+
+ if(type==1){
+ Info.value={}
+ dialogVisible.value=true
+ dotype.value='batch'
+ GetCheckUpTypeEnableList_Func()
+ }
+ if(type==0){
+ BatchUpdateFunc(type)
+ }
+
+ }
+ const BatchUpdateFunc=(type,info=null)=>{
loading.value = true
- PlanSave({
- info: Info.value,
+ let selected_list=[]
+ list.value.forEach((v,i)=>{
+ if(v.selected!=undefined && v.selected==true){
+ selected_list.push(v.id)
+ }
+ })
+ PlanBatchUpdatePlanType({
+ ids: selected_list,
+ type:type,
+ info:info
}).then(res => {
loading.value = false
if (res.status) {
diff --git a/admin/src/views/PlanMngr/PlanModel.vue b/admin/src/views/PlanMngr/PlanModel.vue
index 2fca7c1..04e43c6 100644
--- a/admin/src/views/PlanMngr/PlanModel.vue
+++ b/admin/src/views/PlanMngr/PlanModel.vue
@@ -14,7 +14,7 @@
-
+
{{scope.row.start_time}} - {{scope.row.end_time}}
@@ -67,23 +67,27 @@
-
+
-
+
+
+
diff --git a/h5/pages/main/index/index.vue b/h5/pages/main/index/index.vue
index c910e12..585cb04 100644
--- a/h5/pages/main/index/index.vue
+++ b/h5/pages/main/index/index.vue
@@ -281,7 +281,7 @@
- 102250937
+ 10261440