|
|
@ -1,6 +1,6 @@ |
|
|
|
<template> |
|
|
|
<div class="doctor-schedule"> |
|
|
|
<div class="date-head" :class="title=='plus' ? '' : 'data-head-fixed'"> |
|
|
|
<div class="date-head data-head-fixed"> |
|
|
|
<div class="date-head-right"> |
|
|
|
<el-button-group style="margin-right:10px;"> |
|
|
|
<el-button plain icon="el-icon-arrow-left" size="small" @click="weekPre">上周</el-button> |
|
|
@ -18,12 +18,10 @@ |
|
|
|
@change="pickDateChange" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<el-button v-if="title !=='plus'" type="primary" size="small" icon="el-icon-s-tools">{{ sortName }}</el-button> |
|
|
|
</div> |
|
|
|
<div class="doctor-schedule-content"> |
|
|
|
<div v-loading="pageLoading" class="doctor-schedule-content"> |
|
|
|
<el-row class="weeks"> |
|
|
|
<el-col v-if="title !=='plus' && sortName==='保存设置'" :span="1" class="moren">设为默认</el-col> |
|
|
|
<el-col :span="title ==='plus' && sortName==='批量设置' ? 3 : 2" class="doctor-list-text">检查项目</el-col> |
|
|
|
<el-col :span="3" class="doctor-list-text">检查项目</el-col> |
|
|
|
<el-col |
|
|
|
v-for="(day, index) in days" |
|
|
|
:key="index" |
|
|
@ -45,26 +43,15 @@ |
|
|
|
</el-row> |
|
|
|
<div class="scroll-list"> |
|
|
|
<el-row v-for="(item,index) in doctorList" :key="index" :gutter="10" class="content"> |
|
|
|
<el-col v-if="title !=='plus' && sortName==='保存设置'" :span="1" class="moren"> |
|
|
|
<el-switch :value="item.isDefault===1 ? true : false" @change="switchChange(index,$event)" /> |
|
|
|
</el-col> |
|
|
|
<el-col :span="title ==='plus' && sortName==='批量设置' ? 3 : 2" class="doctor-name"> |
|
|
|
<el-col :span="3" class="doctor-name"> |
|
|
|
<div class="doctorList"> |
|
|
|
<div class="list"> |
|
|
|
<!-- <div class="list-img"> |
|
|
|
<img src="@/assets/img/avatar.png" alt=""> |
|
|
|
</div> --> |
|
|
|
<p>{{ item.itemName }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col v-for="(weekInfoItem,weekInfoIndex) in item.weekInfo" :key="weekInfoIndex" :span="3"> |
|
|
|
<div class="surplu-num"> |
|
|
|
<div v-show="sortName==='保存设置'" class="surplu-num-morning"> |
|
|
|
<div class="morning"> |
|
|
|
<el-input v-model="weekInfoItem.morning.maxNumber" placeholder="" @change="changeInput($event,index,weekInfoIndex,'morning')" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-show="sortName==='预约配置'" class="surplu-num-morning"> |
|
|
|
<!-- 上午预定后 --> |
|
|
|
<div |
|
|
@ -98,24 +85,12 @@ |
|
|
|
<p>已约</p> |
|
|
|
<p>{{ weekInfoItem.morning.orderNum }} / {{ weekInfoItem.morning.maxNumber }}</p> |
|
|
|
</div> |
|
|
|
<!-- 判断上午号是否有剩余加号显示,暂时不用:v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning' && weekInfoItem.morning.surplusNum>0" --> |
|
|
|
<div |
|
|
|
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning' && title !=='plus'" |
|
|
|
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning'" |
|
|
|
class="show-plus-one" |
|
|
|
> |
|
|
|
<p @click="numberMangeClick(item,weekInfoItem,1,index,weekInfoIndex)">详情</p> |
|
|
|
</div> |
|
|
|
<div |
|
|
|
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning'&& title =='plus'" |
|
|
|
class="show-plus-two" |
|
|
|
> |
|
|
|
<i class="el-icon-plus" @click="setOperaTImeClick(item,weekInfoItem,1,'设置时间')" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-show="sortName==='保存设置'" class="surplu-num-after"> |
|
|
|
<div class="after"> |
|
|
|
<el-input v-model="weekInfoItem.after.maxNumber" placeholder="" @change="changeInput($event,index,weekInfoIndex,'after')" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-show="sortName==='预约配置'" class="surplu-num-after"> |
|
|
@ -152,19 +127,12 @@ |
|
|
|
<p>已约</p> |
|
|
|
<p>{{ weekInfoItem.after.orderNum }} / {{ weekInfoItem.after.maxNumber }}</p> |
|
|
|
</div> |
|
|
|
<!-- 判断下午好是否有剩余加号显示,暂时不用:v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after' && weekInfoItem.after.surplusNum>0 --> |
|
|
|
<div |
|
|
|
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after' && title !=='plus'" |
|
|
|
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after'" |
|
|
|
class="show-plus-one" |
|
|
|
> |
|
|
|
<p @click="numberMangeClick(item,weekInfoItem,2,index,weekInfoIndex)">详情</p> |
|
|
|
</div> |
|
|
|
<div |
|
|
|
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after' && title =='plus'" |
|
|
|
class="show-plus-two" |
|
|
|
> |
|
|
|
<i class="el-icon-plus" @click="setOperaTImeClick(item,weekInfoItem,2,'设置时间')" /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -176,7 +144,6 @@ |
|
|
|
v-if="numberManageVisible" |
|
|
|
ref="numberManageRef" |
|
|
|
:patients-list="curPatients" |
|
|
|
:source-flag="sourceFlag" |
|
|
|
:can-add="canAdd" |
|
|
|
@closeDialog="numberManageVisible=false" |
|
|
|
@getScheduleList="getScheduleList" |
|
|
@ -192,29 +159,6 @@ import { dateFilterTwo } from '@/filters' |
|
|
|
import NumberDetailManage from '@/page-subspecialty/views/modules/nurseManagement/reservation/schedule/number-detail-manage.vue' |
|
|
|
/* eslint-disable */ |
|
|
|
export default { |
|
|
|
props: { |
|
|
|
dateValue: { |
|
|
|
type: String, |
|
|
|
default: moment(new Date()).format("YYYY-MM-DD") |
|
|
|
}, |
|
|
|
timeValue: { |
|
|
|
type: String, |
|
|
|
default: "00:00" |
|
|
|
}, |
|
|
|
title: { |
|
|
|
type: String, |
|
|
|
default: '' |
|
|
|
}, |
|
|
|
titleButton: { |
|
|
|
type: String, |
|
|
|
default: '' |
|
|
|
}, |
|
|
|
// 号源标识 1:手术号源 2:检查号源 type----- 1:手术日程,2:术前核查 |
|
|
|
sourceFlag: { |
|
|
|
type: Number, |
|
|
|
default: null |
|
|
|
}, |
|
|
|
}, |
|
|
|
components: { |
|
|
|
NumberDetailManage, |
|
|
|
}, |
|
|
@ -226,131 +170,23 @@ export default { |
|
|
|
currentDay: 1, // 日期 |
|
|
|
currentWeek: 1, // 星期 |
|
|
|
days: [], |
|
|
|
value1: "", |
|
|
|
tabIndex: null, |
|
|
|
newDate: moment(new Date()).format("YYYY-MM-DD"), |
|
|
|
tabTimeIndex: 4, |
|
|
|
times: [ |
|
|
|
{ time: "00:00:00~06:00:00", label: "00:00~06:00" }, |
|
|
|
{ time: "06:00:00~12:00:00", label: "06:00~12:00" }, |
|
|
|
{ time: "12:00:00~18:00:00", label: "12:00~18:00" }, |
|
|
|
{ time: "18:00:00~24:00:00", label: "18:00~24:00" }, |
|
|
|
{ time: "00:00:00~24:00:00", label: "今日全部" } |
|
|
|
], |
|
|
|
numberManageVisible: false, |
|
|
|
curPatients: [], |
|
|
|
curIndex: '', |
|
|
|
curWeekInfoIndex:"", |
|
|
|
curTime: '', |
|
|
|
canAdd: true, |
|
|
|
setOperaTimeVisible:false, |
|
|
|
mouseMoveIsShow: false, |
|
|
|
currentIndex: null, |
|
|
|
currentWeekIndex: null, |
|
|
|
showMorningAfterText: '', |
|
|
|
selectedShow: false, |
|
|
|
doctorList:[], |
|
|
|
doctorList1: [{ |
|
|
|
doctorCode: "liucan", |
|
|
|
doctorName: "刘灿", |
|
|
|
weekInfo: [{ |
|
|
|
after: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 10, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
morning: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 5, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
date: "2023-04-03", |
|
|
|
weekName: "周一", |
|
|
|
},{ |
|
|
|
after: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
morning: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
date: "2023-04-04", |
|
|
|
weekName: "周二", |
|
|
|
},{ |
|
|
|
after: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
morning: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
date: "2023-04-05", |
|
|
|
weekName: "周三", |
|
|
|
},{ |
|
|
|
after: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
morning: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
date: "2023-04-06", |
|
|
|
weekName: "周四", |
|
|
|
},{ |
|
|
|
after: { |
|
|
|
maxNumber: 10, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
morning: { |
|
|
|
maxNumber: 10, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
date: "2023-04-07", |
|
|
|
weekName: "周五", |
|
|
|
},{ |
|
|
|
after: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
morning: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
date: "2023-04-08", |
|
|
|
weekName: "周六", |
|
|
|
},{ |
|
|
|
after: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
morning: { |
|
|
|
maxNumber: 0, |
|
|
|
orderNum: 0, |
|
|
|
scheduledPatients: [], |
|
|
|
}, |
|
|
|
date: "2023-04-09", |
|
|
|
weekName: "周日", |
|
|
|
}] |
|
|
|
}], |
|
|
|
patientList: [], |
|
|
|
rowListObj: {}, |
|
|
|
operaTypeList: [], |
|
|
|
sortName:'预约配置', |
|
|
|
projectList:[] |
|
|
|
}; |
|
|
|
}, |
|
|
|
filters: { |
|
|
@ -385,18 +221,6 @@ export default { |
|
|
|
this.getScheduleList() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
changeInput(e,index,weekInfoIndex,morOrAft) { |
|
|
|
var pattern = /^[0-9][0-9]*$/ |
|
|
|
var regex=/^[0]+/ |
|
|
|
this.doctorList[index].weekInfo[weekInfoIndex][morOrAft].maxNumber = e.replace(regex,""); |
|
|
|
if (!pattern.test(e)) { |
|
|
|
this.$message({ |
|
|
|
message: '只能输入正整数哦', |
|
|
|
type: 'warning' |
|
|
|
}) |
|
|
|
this.doctorList[index].weekInfo[weekInfoIndex][morOrAft].maxNumber = 0 |
|
|
|
} |
|
|
|
}, |
|
|
|
// 获取项目日程 |
|
|
|
async getScheduleList() { |
|
|
|
this.pageLoading = true |
|
|
@ -509,19 +333,6 @@ export default { |
|
|
|
this.newDate = dateFilterTwo(this.days[0]) |
|
|
|
this.sortName === '预约配置' ? this.getScheduleList() : this.getBatchNumSet() |
|
|
|
}, |
|
|
|
// 上一個月 传入当前年份和月份 |
|
|
|
pickPre(year, month) { |
|
|
|
const d = new Date(this.formatDate(year, month, 1)); |
|
|
|
d.setDate(0); |
|
|
|
this.initData(this.formatDate(d.getFullYear(), d.getMonth() + 1, 1)); |
|
|
|
}, |
|
|
|
|
|
|
|
// 下一個月 传入当前年份和月份 |
|
|
|
pickNext(year, month) { |
|
|
|
const d = new Date(this.formatDate(year, month, 1)); |
|
|
|
d.setDate(35); |
|
|
|
this.initData(this.formatDate(d.getFullYear(), d.getMonth() + 1, 1)); |
|
|
|
}, |
|
|
|
|
|
|
|
// 当前选择日期 |
|
|
|
pick(date, index) { |
|
|
@ -533,18 +344,6 @@ export default { |
|
|
|
// this.formatDate(date.getFullYear(), date.getMonth() + 1, date.getDate()) |
|
|
|
// ); |
|
|
|
}, |
|
|
|
pickTime(time, index) { |
|
|
|
// console.log('time: ', time); |
|
|
|
let timeArr = []; |
|
|
|
timeArr.push(_.split(time.time, "~")); |
|
|
|
// console.log("timeArr: ", timeArr); |
|
|
|
this.$emit("timeValue", _.join(timeArr), ""); |
|
|
|
// console.log("index: ", index); |
|
|
|
this.tabTimeIndex = index; |
|
|
|
// alert( |
|
|
|
// this.formatDate(date.getFullYear(), date.getMonth() + 1, date.getDate()) |
|
|
|
// ); |
|
|
|
}, |
|
|
|
// 鼠标移入 |
|
|
|
mouseoverHandle(index, weekInfoIndex, weekInfoItem, showMorningAfterText) { |
|
|
|
// console.log(weekInfoItem[showMorningAfterText]); |
|
|
@ -554,7 +353,7 @@ export default { |
|
|
|
this.currentWeekIndex = weekInfoIndex |
|
|
|
this.showMorningAfterText = showMorningAfterText |
|
|
|
|
|
|
|
this.mouseMoveIsShow = this.title == 'plus' ? (maxNumber > 0 && maxNumber !== orderNum ? true : false) : true |
|
|
|
this.mouseMoveIsShow = true |
|
|
|
}, |
|
|
|
// 鼠标移出 |
|
|
|
mouseoutHandle() { |
|
|
@ -563,26 +362,7 @@ export default { |
|
|
|
this.showMorningAfterText = '' |
|
|
|
this.mouseMoveIsShow = false |
|
|
|
}, |
|
|
|
// 默认开关 |
|
|
|
switchChange(index,e) { |
|
|
|
this.doctorList[index].isDefault = e ? 1 : 0 |
|
|
|
}, |
|
|
|
// 新增日程安排 |
|
|
|
addPatientHandle(item, weekInfoItem, flag) { |
|
|
|
this.addScheduleVisible = true |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs.addScheduleRef.dataForm.title = '预约医生' |
|
|
|
this.$refs.addScheduleRef.dataForm.doctorName = item.doctorName |
|
|
|
this.$refs.addScheduleRef.dataForm.operaTime = flag === 'morning' ? weekInfoItem.date + ' 07:30:00' : weekInfoItem.date + ' 14:00:00' |
|
|
|
this.$refs.addScheduleRef.params = item |
|
|
|
this.$refs.addScheduleRef.init() |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 单选 |
|
|
|
handleCurrentChange(val) { |
|
|
|
this.currentRow = val; |
|
|
|
}, |
|
|
|
// 号源管理 |
|
|
|
// 详情展示 |
|
|
|
async numberMangeClick(item, weekInfoItem, morOrAft,index,weekInfoIndex) { |
|
|
|
this.numberMangeClickFun(item, weekInfoItem, morOrAft,index,weekInfoIndex) |
|
|
|
}, |
|
|
@ -608,42 +388,6 @@ export default { |
|
|
|
this.$refs.numberManageRef.init() |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 设置时间 |
|
|
|
setOperaTImeClick(item, weekInfoItem, morOrAft, title) { |
|
|
|
// 判断时间是否过时 |
|
|
|
const time = morOrAft=== 1 ? '13:30:00' : '21:00:00' |
|
|
|
const operaDateTime = weekInfoItem.date + ' ' + time |
|
|
|
// 时间 |
|
|
|
const operaTime = new Date(operaDateTime) |
|
|
|
// 现在时间 |
|
|
|
const nowTime = new Date() |
|
|
|
console.log(operaTime); |
|
|
|
console.log(nowTime); |
|
|
|
if (operaTime > nowTime) { |
|
|
|
this.setOperaTimeVisible=true |
|
|
|
this.$nextTick(() => { |
|
|
|
// 如果日期相同,医生相同,时间段相同再回显时间 |
|
|
|
if(this.rowListObj.operaDate===weekInfoItem.date && this.rowListObj.mainDoctorName === item.doctorName && this.rowListObj.morOrAft===morOrAft) { |
|
|
|
this.$refs.setOperaTimeRef.dataForm.operaTime = this.rowListObj.operaTime |
|
|
|
} |
|
|
|
this.$refs.setOperaTimeRef.dataForm.mainDoctorName = item.doctorName |
|
|
|
this.$refs.setOperaTimeRef.weekName = weekInfoItem.weekName |
|
|
|
this.$refs.setOperaTimeRef.morOrAft = morOrAft |
|
|
|
this.$refs.setOperaTimeRef.title = title |
|
|
|
this.$refs.setOperaTimeRef.dataForm.mainDoctorCode = item.doctorCode |
|
|
|
this.$refs.setOperaTimeRef.dataForm.operaDate = weekInfoItem.date |
|
|
|
|
|
|
|
this.$refs.setOperaTimeRef.init() |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$message({ |
|
|
|
message: '时间已过时,不可设置', |
|
|
|
type: 'warning' |
|
|
|
}) |
|
|
|
} |
|
|
|
// console.log(this.rowListObj); |
|
|
|
|
|
|
|
}, |
|
|
|
} |
|
|
|
}; |
|
|
|
</script> |
|
|
|