超过预约时间的 预约截止时间 变灰

生成计划日期选择器
预约明细调整优化
main
鹿和sa0ChunLuyu 3 days ago
parent 8bffa2ebe8
commit 7597d7d5f2

@ -371,7 +371,12 @@ public function GetUsedList()
$qudaoid = request('qudaoid');
$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')
->leftJoin('s_check_item', function($join) {
$join->on('s_list.entrust', '=', 's_check_item.item_name')
->where('s_check_item.is_del', 0)
->where('s_check_item.status', 1);
})
->select('s_list.*', 's_department_resources.department_resources_name', 's_check_item.use_seats', 's_check_item.is_share_slot')
->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]);

@ -364,7 +364,7 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
$debugPassed[] = $p->resources_id;
//过期的排在后面
$time = $p->date . ' ' . $p->end_time;
$time = $p->date . ' ' . $p->end_reservation_time;
$remaining = ($p->count ?? 0) - ($p->used_count ?? 0);
$existingMax = $existingSharedAtPlan[$p->id] ?? 0;
$needed = $zhanweiCount - min($newSharedMax, $existingMax);
@ -430,7 +430,7 @@ public function GetEnablePlan($regnum, $entrustids, $episodeid, $appointment_typ
// 收集 earliest仅 status=1 且 remaining>0 且未过期
if (($plan->status ?? 1) == 1 && $remaining > 0) {
$endDateTime = $plan->date . ' ' . ($plan->end_time ?? '23:59:59');
$endDateTime = $plan->date . ' ' . ($plan->end_reservation_time ?? '23:59:59');
if (strtotime($endDateTime) > $nowTimestamp) {
$startDateTime = $plan->date . ' ' . ($plan->begin_time ?? '00:00:00');
$ts = strtotime($startDateTime);
@ -933,7 +933,7 @@ private function getAvailablePlansForDate($regnum, $entrustids, $episodeid, $app
$nowtime = date('Y-m-d H:i:s');
$availablePlans = [];
foreach ($planList as $plan) {
$planEndTime = $plan->date . ' ' . $plan->end_time;
$planEndTime = $plan->date . ' ' . $plan->end_reservation_time;
if ($planEndTime > $nowtime && $plan->plan_enable) {
$availablePlans[] = $plan;
}
@ -1074,7 +1074,7 @@ public function YuYue($planid, $appointment_type, $mainlistids, $do_type,$is_eme
$date = new DateTime($entrust_time);
$date->modify("+" . $item->check_begin_time . " minutes");
$enableCheckTime = $date;//到此时间后可进行预约
$plan_dateTime = $planInfo->date . ' ' . $planInfo->end_time;
$plan_dateTime = $planInfo->date . ' ' . $planInfo->end_reservation_time;
$plan_dateTime = new DateTime($plan_dateTime);
if ($plan_dateTime < $enableCheckTime and $item->check_begin_time>0) return \Yz::echoError1($item->item_name . " 已设置只能预约医嘱开具后" . $item->check_begin_time . "分钟后的时间,请预约" . $enableCheckTime->format("Y-m-d H:i:s") . "之后的时间");

@ -209,7 +209,7 @@
</span>
</template>
</el-dialog>
<el-dialog v-model="MingXiDialogVisible" title="预约明细" width="60%">
<el-dialog v-model="MingXiDialogVisible" title="预约明细" width="75%">
<div>
<div style="text-align: center;font-size: 16px; margin-top: -30px;margin-bottom: 10px;">
{{selectedPlanRow.department_resources_name}}
@ -217,15 +217,6 @@
:class="(item.status==1 && item.is_del==0) ? '':'hongzi'">{{ item.device_name }}
</span>
</div>
<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">
@ -239,8 +230,13 @@
<el-table-column prop="user_phone" label="电话" />
<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-column label="项目" show-overflow-tooltip min-width="220">
<template #default="scope">
<el-tag v-if="scope.row.is_share_slot == 1" size="small" type="warning" style="margin-right: 4px;"></el-tag>{{ scope.row.entrust }}{{ scope.row.requestComment ? '' + scope.row.requestComment + '' : '' }}
<span v-if="scope.row.use_seats && scope.row.use_seats > 1" style="margin-left: 4px; color: #e6a23c; font-weight: 700;">×{{ scope.row.use_seats }}</span>
</template>
</el-table-column>
<el-table-column prop="docotr" label="开单医生" />
</el-table>
</div>
</el-dialog>

@ -209,7 +209,7 @@
</span>
</template>
</el-dialog>
<el-dialog v-model="MingXiDialogVisible" title="预约明细" width="60%">
<el-dialog v-model="MingXiDialogVisible" title="预约明细" width="75%">
<div>
<div style="text-align: center;font-size: 16px; margin-top: -30px;margin-bottom: 10px;">
{{selectedPlanRow.department_resources_name}}
@ -217,15 +217,6 @@
:class="(item.status==1 && item.is_del==0) ? '':'hongzi'">{{ item.device_name }}
</span>
</div>
<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">
@ -239,8 +230,13 @@
<el-table-column prop="user_phone" label="电话" />
<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-column label="项目" show-overflow-tooltip min-width="220">
<template #default="scope">
<el-tag v-if="scope.row.is_share_slot == 1" size="small" type="warning" style="margin-right: 4px;"></el-tag>{{ scope.row.entrust }}{{ scope.row.requestComment ? '' + scope.row.requestComment + '' : '' }}
<span v-if="scope.row.use_seats && scope.row.use_seats > 1" style="margin-left: 4px; color: #e6a23c; font-weight: 700;">×{{ scope.row.use_seats }}</span>
</template>
</el-table-column>
<el-table-column prop="docotr" label="开单医生" />
</el-table>
</div>
</el-dialog>

@ -307,8 +307,9 @@
<el-dialog v-model="CreatePlanDialogVisible" title="生成计划" width="50%">
<el-form label-width="100px" v-loading="loading" style="padding-right: 40px;">
<el-form-item label="选择时间范围:">
<el-date-picker v-model="dateRange" type="daterange" range-separator="To" start-placeholder=""
end-placeholder="结束时间" value-format="YYYY-MM-DD" />
<el-date-picker v-model="startDate" type="date" placeholder="开始时间" value-format="YYYY-MM-DD" />
<span style="margin: 0 8px;"></span>
<el-date-picker v-model="endDate" type="date" placeholder="结束时间" value-format="YYYY-MM-DD" />
</el-form-item>
<el-form-item label="节假日生成:">
<el-switch v-model="HolidayEnable" size="large" active-text="" inactive-text="" :active-value="1"
@ -515,7 +516,8 @@
let dateRange = ref([]) //
let startDate = ref('') //
let endDate = ref('') //
let CreatePlanDialogVisible = ref(false)
let ConflictDialogVisible = ref(false) //
let ConflictData = ref([]) //
@ -847,13 +849,13 @@
}
}
const CreatedPlanAction = () => { //
if (dateRange.value.length === 0) {
if (!startDate.value || !endDate.value) {
ElMessage.error("请选择日期范围")
return false;
}
CreatePlanList({
dateRange: dateRange.value,
dateRange: [startDate.value, endDate.value],
ids: selectedPlanArr.value,
HolidayEnable: HolidayEnable.value,
date_type: searchInfo.value.date_type
@ -1440,7 +1442,8 @@
//
let nextMonth = nextMonthSameDay.toISOString().split('T')[0]; // YYYY-MM-DD
dateRange.value = [currentdate, nextMonth];
startDate.value = currentdate;
endDate.value = nextMonth;
}
})

@ -307,8 +307,9 @@
<el-dialog v-model="CreatePlanDialogVisible" title="生成计划" width="50%">
<el-form label-width="100px" v-loading="loading" style="padding-right: 40px;">
<el-form-item label="选择时间范围:">
<el-date-picker v-model="dateRange" type="daterange" range-separator="To" start-placeholder=""
end-placeholder="结束时间" value-format="YYYY-MM-DD" />
<el-date-picker v-model="startDate" type="date" placeholder="开始时间" value-format="YYYY-MM-DD" />
<span style="margin: 0 8px;"></span>
<el-date-picker v-model="endDate" type="date" placeholder="结束时间" value-format="YYYY-MM-DD" />
</el-form-item>
<el-form-item label="节假日生成:">
<el-switch v-model="HolidayEnable" size="large" active-text="" inactive-text="" :active-value="1"
@ -515,7 +516,8 @@
let dateRange = ref([]) //
let startDate = ref('') //
let endDate = ref('') //
let CreatePlanDialogVisible = ref(false)
let ConflictDialogVisible = ref(false) //
let ConflictData = ref([]) //
@ -847,13 +849,13 @@
}
}
const CreatedPlanAction = () => { //
if (dateRange.value.length === 0) {
if (!startDate.value || !endDate.value) {
ElMessage.error("请选择日期范围")
return false;
}
CreatePlanListAdmin({
dateRange: dateRange.value,
dateRange: [startDate.value, endDate.value],
ids: selectedPlanArr.value,
HolidayEnable: HolidayEnable.value,
date_type: searchInfo.value.date_type,
@ -1455,7 +1457,8 @@
//
let nextMonth = nextMonthSameDay.toISOString().split('T')[0]; // YYYY-MM-DD
dateRange.value = [currentdate, nextMonth];
startDate.value = currentdate;
endDate.value = nextMonth;
}
})

Loading…
Cancel
Save