Compare commits

..

No commits in common. 'push' and 'main' have entirely different histories.
push ... main

@ -724,7 +724,6 @@ public function SaveLockedCount(Request $request)
$userid = $request->get('userid'); $userid = $request->get('userid');
$roster_detail_id = request('roster_detail_id'); $roster_detail_id = request('roster_detail_id');
$locked_counts = request('locked_counts'); $locked_counts = request('locked_counts');
$locked_remark = request('locked_remark');
if (empty($roster_detail_id)) { if (empty($roster_detail_id)) {
return \Yz::echoError1('计划明细ID不能为空'); return \Yz::echoError1('计划明细ID不能为空');
@ -792,11 +791,6 @@ public function SaveLockedCount(Request $request)
} }
} }
// 更新占位备注(时段级,无条件覆盖)
DB::table('s_source_roster_detail')
->where('id', $roster_detail_id)
->update(['locked_remark' => $locked_remark ?? null]);
// 有变更时记录日志 // 有变更时记录日志
if (!empty($changes)) { if (!empty($changes)) {
DB::table('s_source_roster_detail_log')->insert([ DB::table('s_source_roster_detail_log')->insert([
@ -1202,7 +1196,6 @@ public function BatchChangeLocked(Request $request)
} }
$ids = request('ids'); $ids = request('ids');
$coutsInfo = request('coutsInfo'); $coutsInfo = request('coutsInfo');
$locked_remark = request('locked_remark');
if (empty($ids) || empty($coutsInfo)) { if (empty($ids) || empty($coutsInfo)) {
return \Yz::echoError1('参数错误'); return \Yz::echoError1('参数错误');
} }
@ -1245,10 +1238,6 @@ public function BatchChangeLocked(Request $request)
AND appointment_type_id IN ({$atypeIdsStr})"; AND appointment_type_id IN ({$atypeIdsStr})";
$u2 = DB::update($sql); $u2 = DB::update($sql);
if ($u2 !== false) { if ($u2 !== false) {
// 更新占位备注(时段级,无条件覆盖)
DB::table('s_source_roster_detail')
->whereIn('id', array_map('intval', $ids))
->update(['locked_remark' => $locked_remark ?? null]);
return \Yz::Return(true, '批量占位成功', []); return \Yz::Return(true, '批量占位成功', []);
} else { } else {
return \Yz::echoError1('批量占位失败'); return \Yz::echoError1('批量占位失败');

@ -217,7 +217,7 @@ public function GetList(Request $request)
->leftJoin('s_period','s_list.reservation_time','=','s_period.id') ->leftJoin('s_period','s_list.reservation_time','=','s_period.id')
->leftJoin('s_department_resources','s_list.reservation_sources','=','s_department_resources.id') ->leftJoin('s_department_resources','s_list.reservation_sources','=','s_department_resources.id')
->select('s_list.*','s_period.period_begin_time','s_period.period_end_time','s_department_resources.department_resources_name') ->select('s_list.*','s_period.period_begin_time','s_period.period_end_time','s_department_resources.department_resources_name')
->where(['s_list.is_del'=>0]); ->where(['s_list.is_del'=>0,'s_list.is_nullify'=>0]);
if($userInfo[0]->group==2){ if($userInfo[0]->group==2){
// $list=$list->whereIn('warddesc', explode(",", $userInfo[0]->ward)); // $list=$list->whereIn('warddesc', explode(",", $userInfo[0]->ward));
$list=$list->where(['wardcode'=> $department->department_number]); $list=$list->where(['wardcode'=> $department->department_number]);
@ -272,15 +272,8 @@ public function GetList(Request $request)
$list = $list->whereBetween('s_list.reservation_date', $searchInfo['dateRange']); $list = $list->whereBetween('s_list.reservation_date', $searchInfo['dateRange']);
} }
} }
if (isset($searchInfo['list_status']) && $searchInfo['list_status'] !== '' && $searchInfo['list_status'] !== null) { if (isset($searchInfo['list_status'])) {
if ($searchInfo['list_status'] === 'nullify') { $list = $list->where('s_list.list_status', $searchInfo['list_status']);
$list = $list->where('s_list.is_nullify', 1);
} else {
$list = $list->where('s_list.is_nullify', 0)
->where('s_list.list_status', $searchInfo['list_status']);
}
} else {
$list = $list->where('s_list.is_nullify', 0);
} }
if (isset($searchInfo['patient_type'])) { if (isset($searchInfo['patient_type'])) {
$list = $list->where('s_list.patient_type', $searchInfo['patient_type']); $list = $list->where('s_list.patient_type', $searchInfo['patient_type']);
@ -310,7 +303,7 @@ public function GetList(Request $request)
//动态排序 //动态排序
$orderField = $searchInfo['orderField'] ?? ''; $orderField = $searchInfo['orderField'] ?? '';
$orderDirection = ($searchInfo['orderDirection'] ?? '') == 'ascending' ? 'asc' : 'desc'; $orderDirection = ($searchInfo['orderDirection'] ?? '') == 'ascending' ? 'asc' : 'desc';
$allowedFields = ['reg_num', 'episodeid', 'user_name', 'user_sex', 'user_brithday', 'entrust', 'is_pay', 'list_status', 'reservation_department', 'user_phone', 'reservation_time', 'reservation_date', 'entrust_date_time']; $allowedFields = ['reg_num', 'episodeid', 'user_name', 'user_sex', 'user_brithday', 'entrust', 'is_pay', 'list_status', 'reservation_department', 'user_phone', 'reservation_time', 'entrust_date_time'];
if (!empty($orderField) && in_array($orderField, $allowedFields)) { if (!empty($orderField) && in_array($orderField, $allowedFields)) {
if ($orderField === 'reservation_time') { if ($orderField === 'reservation_time') {
$list = $list->orderByRaw("CONCAT(IFNULL(s_list.reservation_date,''), ' ', IFNULL(s_period.period_begin_time,'')) $orderDirection"); $list = $list->orderByRaw("CONCAT(IFNULL(s_list.reservation_date,''), ' ', IFNULL(s_period.period_begin_time,'')) $orderDirection");

@ -1162,8 +1162,6 @@ let TanChuangMsgDialogVisible=ref(false)
// plan_id // plan_id
highlightedPlanIds.value = res.data.map(v => v.plan_id) highlightedPlanIds.value = res.data.map(v => v.plan_id)
selectedPlanId.value = res.data[0].plan_id selectedPlanId.value = res.data[0].plan_id
//
GetEnablePlanFunc()
} }
} else { } else {
ElMessage.error(res.msg) ElMessage.error(res.msg)
@ -1282,7 +1280,6 @@ let TanChuangMsgDialogVisible=ref(false)
activeZhenShi.value = res.data[0].department_resources_name activeZhenShi.value = res.data[0].department_resources_name
highlightedPlanIds.value = res.data.map(v => v.plan_id) highlightedPlanIds.value = res.data.map(v => v.plan_id)
selectedPlanId.value = res.data[0].plan_id selectedPlanId.value = res.data[0].plan_id
GetEnablePlanFunc()
} else { } else {
ElMessageBox.confirm('未找到任何一天可满足所有检查项目的号源', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', showCancelButton: false }) ElMessageBox.confirm('未找到任何一天可满足所有检查项目的号源', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', showCancelButton: false })
} }
@ -1380,7 +1377,6 @@ let TanChuangMsgDialogVisible=ref(false)
// //
highlightedPlanIds.value = res.data.map(v => v.plan_id) highlightedPlanIds.value = res.data.map(v => v.plan_id)
selectedPlanId.value = res.data[0].plan_id selectedPlanId.value = res.data[0].plan_id
GetEnablePlanFunc()
} else { } else {
ElMessageBox.confirm('未找到同一时段号源,无法匹配', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', showCancelButton: false }) ElMessageBox.confirm('未找到同一时段号源,无法匹配', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', showCancelButton: false })
} }
@ -1594,12 +1590,11 @@ let TanChuangMsgDialogVisible=ref(false)
GetEnablePlanFunc() GetEnablePlanFunc()
} }
if (auto_print.value.length > 0) { if (auto_print.value.length > 0) {
const bookedEntrustIds = ids const bookedIds = selectedRows.value
.map(id => entrustTableDate.value.find(v => v.id === id)) .filter(v => v.list_status === 1)
.filter(Boolean)
.map(v => v.entrust_id) .map(v => v.entrust_id)
if (bookedEntrustIds.length > 0) { if (bookedIds.length > 0) {
print_shenqingdan(bookedEntrustIds) print_shenqingdan(bookedIds)
} }
} }
}, true) }, true)

@ -287,16 +287,6 @@
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="占位备注:">
<el-input
type="textarea"
v-model="ZhanWeiInfo.locked_remark"
:rows="3"
placeholder="选填,填写占位原因"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-form> </el-form>
</div> </div>
<template #footer> <template #footer>
@ -362,16 +352,6 @@
<el-col :span="6" style="line-height: 32px; font-weight: 600;">合计</el-col> <el-col :span="6" style="line-height: 32px; font-weight: 600;">合计</el-col>
<el-col :span="8" style="line-height: 32px; font-weight: 600;">占用: {{ batchOccupyTotalLocked }}</el-col> <el-col :span="8" style="line-height: 32px; font-weight: 600;">占用: {{ batchOccupyTotalLocked }}</el-col>
</el-row> </el-row>
<el-form-item label="占位备注:" style="margin-top: 10px;">
<el-input
type="textarea"
v-model="batchLockedRemark"
:rows="3"
placeholder="选填,填写占位原因"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-form> </el-form>
</div> </div>
<template #footer> <template #footer>
@ -1021,7 +1001,6 @@
let batchOccupyRunning = ref(false) let batchOccupyRunning = ref(false)
let batchOccupyForm = ref([]) let batchOccupyForm = ref([])
let batchOccupyLimits = ref({}) // { [appointment_type_id]: { limited: bool, maxValue: number } } let batchOccupyLimits = ref({}) // { [appointment_type_id]: { limited: bool, maxValue: number } }
let batchLockedRemark = ref('')
const initBatchOccupyForm = () => { const initBatchOccupyForm = () => {
batchOccupyForm.value = batchChannels.map(ch => ({ batchOccupyForm.value = batchChannels.map(ch => ({
appointment_type_id: ch.id, appointment_type_id: ch.id,
@ -1045,7 +1024,6 @@
return return
} }
initBatchOccupyForm() initBatchOccupyForm()
batchLockedRemark.value = ''
// planTableData count - used_count // planTableData count - used_count
const selectedIds = new Set(selectedPlanArr.value) const selectedIds = new Set(selectedPlanArr.value)
const channelRemaining = {} // { [appointment_type_id]: number[] } const channelRemaining = {} // { [appointment_type_id]: number[] }
@ -1100,8 +1078,7 @@
try { try {
const res = await PlanListBatchChangeLocked({ const res = await PlanListBatchChangeLocked({
ids: ids, ids: ids,
coutsInfo: coutsInfo, coutsInfo: coutsInfo
locked_remark: batchLockedRemark.value
}) })
batchOccupyRunning.value = false batchOccupyRunning.value = false
if (res && res.status) { if (res && res.status) {
@ -1187,8 +1164,7 @@
loading.value = true loading.value = true
SaveLockedCount({ SaveLockedCount({
roster_detail_id: ZhanWeiInfo.value.id, roster_detail_id: ZhanWeiInfo.value.id,
locked_counts: locked_counts, locked_counts: locked_counts
locked_remark: ZhanWeiInfo.value.locked_remark || ''
}).then(res => { }).then(res => {
loading.value = false loading.value = false
if (res.status) { if (res.status) {

@ -287,16 +287,6 @@
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="占位备注:">
<el-input
type="textarea"
v-model="ZhanWeiInfo.locked_remark"
:rows="3"
placeholder="选填,填写占位原因"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-form> </el-form>
</div> </div>
<template #footer> <template #footer>
@ -362,16 +352,6 @@
<el-col :span="6" style="line-height: 32px; font-weight: 600;">合计</el-col> <el-col :span="6" style="line-height: 32px; font-weight: 600;">合计</el-col>
<el-col :span="8" style="line-height: 32px; font-weight: 600;">占用: {{ batchOccupyTotalLocked }}</el-col> <el-col :span="8" style="line-height: 32px; font-weight: 600;">占用: {{ batchOccupyTotalLocked }}</el-col>
</el-row> </el-row>
<el-form-item label="占位备注:" style="margin-top: 10px;">
<el-input
type="textarea"
v-model="batchLockedRemark"
:rows="3"
placeholder="选填,填写占位原因"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-form> </el-form>
</div> </div>
<template #footer> <template #footer>
@ -1036,7 +1016,6 @@
let batchOccupyRunning = ref(false) let batchOccupyRunning = ref(false)
let batchOccupyForm = ref([]) let batchOccupyForm = ref([])
let batchOccupyLimits = ref({}) // { [appointment_type_id]: { limited: bool, maxValue: number } } let batchOccupyLimits = ref({}) // { [appointment_type_id]: { limited: bool, maxValue: number } }
let batchLockedRemark = ref('')
const initBatchOccupyForm = () => { const initBatchOccupyForm = () => {
batchOccupyForm.value = batchChannels.map(ch => ({ batchOccupyForm.value = batchChannels.map(ch => ({
appointment_type_id: ch.id, appointment_type_id: ch.id,
@ -1060,7 +1039,6 @@
return return
} }
initBatchOccupyForm() initBatchOccupyForm()
batchLockedRemark.value = ''
// planTableData count - used_count // planTableData count - used_count
const selectedIds = new Set(selectedPlanArr.value) const selectedIds = new Set(selectedPlanArr.value)
const channelRemaining = {} // { [appointment_type_id]: number[] } const channelRemaining = {} // { [appointment_type_id]: number[] }
@ -1116,8 +1094,7 @@
const res = await PlanListBatchChangeLocked({ const res = await PlanListBatchChangeLocked({
ids: ids, ids: ids,
coutsInfo: coutsInfo, coutsInfo: coutsInfo,
department_id: searchInfo.value.department_id, department_id: searchInfo.value.department_id
locked_remark: batchLockedRemark.value
}) })
batchOccupyRunning.value = false batchOccupyRunning.value = false
if (res && res.status) { if (res && res.status) {
@ -1203,8 +1180,7 @@
loading.value = true loading.value = true
SaveLockedCount({ SaveLockedCount({
roster_detail_id: ZhanWeiInfo.value.id, roster_detail_id: ZhanWeiInfo.value.id,
locked_counts: locked_counts, locked_counts: locked_counts
locked_remark: ZhanWeiInfo.value.locked_remark || ''
}).then(res => { }).then(res => {
loading.value = false loading.value = false
if (res.status) { if (res.status) {

@ -30,7 +30,6 @@
<el-option label="已预约" value="1" /> <el-option label="已预约" value="1" />
<el-option label="已报道" value="2" /> <el-option label="已报道" value="2" />
<el-option label="已结束" value="3" /> <el-option label="已结束" value="3" />
<el-option label="医嘱作废" value="nullify" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -103,28 +102,25 @@
</div> </div>
<el-table :data="tableData" id="tablelist" 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" @sort-change="onSortChange"> @select="handleSelect" @sort-change="onSortChange">
<el-table-column type="selection" width="50" fixed="left" :selectable="checkSelectable"> <el-table-column type="selection" width="50" fixed="left">
<template #header><span></span></template> <template #header><span></span></template>
</el-table-column> </el-table-column>
<el-table-column prop="list_status" label="状态" width="80" sortable="custom"> <el-table-column prop="list_status" label="状态" width="80" sortable="custom">
<template #default="scope"> <template #default="scope">
<el-tag v-if="scope.row.is_nullify===1" class="ml-2" type="danger"></el-tag>
<template v-else>
<el-tag v-if="scope.row.list_status===0" class="ml-2" type="info"></el-tag> <el-tag v-if="scope.row.list_status===0" class="ml-2" type="info"></el-tag>
<el-tag v-if="scope.row.list_status===1" class="ml-2" type="success"></el-tag> <el-tag v-if="scope.row.list_status===1" class="ml-2" type="success"></el-tag>
<el-tag v-if="scope.row.list_status===2" class="ml-2"></el-tag> <el-tag v-if="scope.row.list_status===2" class="ml-2"></el-tag>
<el-tag v-if="scope.row.list_status===3" class="ml-2" type="warning"></el-tag> <el-tag v-if="scope.row.list_status===3" class="ml-2" type="warning"></el-tag>
</template> </template>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="reg_num" label="门诊号" width="120" sortable="custom"> <el-table-column prop="reg_num" label="门诊号" width="120" sortable="custom">
<template #default="scope"> <template #default="scope">
{{ Number(scope.row.patient_type) !== 0 ? scope.row.reg_num : '' }} <span v-if="scope.row.patient_type != 0">{{ scope.row.reg_num }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="episodeid" label="住院号" width="120" sortable="custom"> <el-table-column prop="episodeid" label="住院号" width="120" sortable="custom">
<template #default="scope"> <template #default="scope">
{{ Number(scope.row.patient_type) === 0 ? scope.row.episodeid?.slice(-10) : '' }} <span v-if="scope.row.patient_type == 0">{{ scope.row.episodeid?.slice(-10) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="user_name" label="姓名" width="100" sortable="custom" /> <el-table-column prop="user_name" label="姓名" width="100" sortable="custom" />
@ -150,12 +146,12 @@
<span v-if="scope.row.is_pay==0"></span> <span v-if="scope.row.is_pay==0"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="reservation_date" label="预约日期" width="120" sortable="custom"> <el-table-column prop="reservation_time" label="预约日期" width="120" sortable="custom">
<template #default="scope"> <template #default="scope">
{{ scope.row.reservation_date }} {{ scope.row.reservation_date }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="reservation_time" label="预约时间" width="120" sortable="custom"> <el-table-column prop="check_begin_time" label="预约时间" width="120">
<template #default="scope"> <template #default="scope">
<span <span
v-if="scope.row.period_begin_time && scope.row.period_end_time ">{{scope.row.period_begin_time.substring(0, 5)}}~{{scope.row.period_end_time.substring(0, 5)}}</span> v-if="scope.row.period_begin_time && scope.row.period_end_time ">{{scope.row.period_begin_time.substring(0, 5)}}~{{scope.row.period_end_time.substring(0, 5)}}</span>
@ -171,10 +167,10 @@
<el-table-column prop="docotr" label="申请医生" width="80" /> <el-table-column prop="docotr" label="申请医生" width="80" />
<el-table-column prop="patient_type" label="病人类型" width="80"> <el-table-column prop="patient_type" label="病人类型" width="80">
<template #default="scope"> <template #default="scope">
<span v-if="Number(scope.row.patient_type)===0"></span> <span v-if="scope.row.patient_type==0"></span>
<span v-if="Number(scope.row.patient_type)===1"></span> <span v-if="scope.row.patient_type==1"></span>
<span v-if="Number(scope.row.patient_type)===2"></span> <span v-if="scope.row.patient_type==2"></span>
<span v-if="Number(scope.row.patient_type)===3"></span> <span v-if="scope.row.patient_type==3"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="user_phone" label="电话" width="120" sortable="custom" /> <el-table-column prop="user_phone" label="电话" width="120" sortable="custom" />
@ -269,12 +265,12 @@
</el-table-column> </el-table-column>
<el-table-column label="门诊号" width="120"> <el-table-column label="门诊号" width="120">
<template #default="scope"> <template #default="scope">
{{ Number(scope.row.patient_type) !== 0 ? scope.row.reg_num : '' }} <span v-if="scope.row.patient_type != 0">{{ scope.row.reg_num }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="住院号" width="120"> <el-table-column label="住院号" width="120">
<template #default="scope"> <template #default="scope">
{{ Number(scope.row.patient_type) === 0 ? scope.row.episodeid?.slice(-10) : '' }} <span v-if="scope.row.patient_type == 0">{{ scope.row.episodeid?.slice(-10) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="user_name" label="姓名" /> <el-table-column prop="user_name" label="姓名" />
@ -312,10 +308,10 @@
<el-table-column prop="docotr" label="申请医生" width="80" /> <el-table-column prop="docotr" label="申请医生" width="80" />
<el-table-column prop="patient_type" label="病人类型" width="80"> <el-table-column prop="patient_type" label="病人类型" width="80">
<template #default="scope"> <template #default="scope">
<span v-if="Number(scope.row.patient_type)===0"></span> <span v-if="scope.row.patient_type==0"></span>
<span v-if="Number(scope.row.patient_type)===1"></span> <span v-if="scope.row.patient_type==1"></span>
<span v-if="Number(scope.row.patient_type)===2"></span> <span v-if="scope.row.patient_type==2"></span>
<span v-if="Number(scope.row.patient_type)===3"></span> <span v-if="scope.row.patient_type==3"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="user_phone" label="电话" width="120" /> <el-table-column prop="user_phone" label="电话" width="120" />
@ -463,9 +459,6 @@
GetList() GetList()
} }
let tableSelected = ref([]) let tableSelected = ref([])
const checkSelectable = (row) => {
return row.is_nullify !== 1
}
const handleSelect = (e) => { const handleSelect = (e) => {
if (e.length > 1) { if (e.length > 1) {
const firstStatus = e[0].list_status; const firstStatus = e[0].list_status;

Loading…
Cancel
Save