Browse Source

护士工作台完成

360view
bianyaqi 2 years ago
parent
commit
0bf2f9711c
  1. 204
      src/page-subspecialty/views/modules/nurseManagement/UBMOrder.vue
  2. 56
      src/page-subspecialty/views/modules/nurseManagement/dialogTest.vue
  3. 268
      src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue
  4. 146
      src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/doctor-schedule.vue
  5. 75
      src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/number-detail-manage.vue
  6. 0
      src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/orderPatientList.vue
  7. 53
      src/page-subspecialty/views/modules/nurseManagement/reservation/subList/index.vue
  8. 0
      src/page-subspecialty/views/modules/nurseManagement/reservation/subList/reDialog.vue
  9. 0
      src/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/addProject.vue
  10. 2
      src/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/index.vue

204
src/page-subspecialty/views/modules/nurseManagement/UBMOrder.vue

@ -1,204 +0,0 @@
<template>
<my-dialog :print="print" :title="patientInfo?patientInfo.itemName:'修改预约'" :is-show="show" @handleSave="handleSave" @close="closeDialog">
<el-form id="UBMOrder" ref="form" size="small" :model="form" label-width="90px">
<el-form-item required label="选择患者:">
<el-input v-model="form.patient" suffix-icon="el-icon-search" />
</el-form-item>
<div v-if="patientInfo" class="patientDetail">
<div style="font-size: 16px;font-weight: bold">患者信息</div>
<div class="detailItem">
<div>登记号{{ patientInfo.patientId }}</div>
<div>电话{{ patientInfo.patientPhone }}</div>
</div>
<div class="detailItem">
<div>姓名{{ patientInfo.patientName }}</div>
<div>性别{{ patientInfo.patientSex }}</div>
<div>生日{{ patientInfo.patientBirthday }}</div>
<div>年龄{{ patientInfo.patientAge }}</div>
<div>来源门诊/住院</div>
</div>
</div>
<el-form-item label="负责医生:">
<el-col :span="12">
<el-select v-model="form.doctorId" placeholder="请选择">
<el-option
v-for="item in doctorList"
:key="item.employeeId"
:label="item.realName"
:value="item.employeeId"
/>
</el-select>
</el-col>
<el-col :span="12" style="display: flex;align-items: center">
已开医嘱:
<div class="radioItem" @click="form.docAdvice=true">
<input :checked="form.docAdvice" type="radio">
</div>
<div class="radioItem" @click="form.docAdvice=false">
<input :checked="!form.docAdvice" type="radio">
</div>
</el-col>
</el-form-item>
<el-form-item label="备注:">
<el-input v-model="form.remark" autosize type="textarea" />
</el-form-item>
<div style="display: flex;padding:0 0 20px 20px">
<el-col :span="10" style="display: flex;align-items: center">
眼别:
<div class="radioItem" @click="form.eyeLevel='OD'">
<input :checked="form.eyeLevel==='OD'" type="radio">OD
</div>
<div class="radioItem" @click="form.eyeLevel='OS'">
<input :checked="form.eyeLevel==='OS'" type="radio">OS
</div>
<div class="radioItem" @click="form.eyeLevel='OU'">
<input :checked="form.eyeLevel==='OU'" type="radio">OU
</div>
</el-col>
<el-col :span="7" style="display: flex;align-items: center">
散瞳:
<div class="radioItem" @click="form.mydriasis=true">
<input :checked="form.mydriasis" type="radio">
</div>
<div class="radioItem" @click="form.mydriasis=false">
<input :checked="!form.mydriasis" type="radio">
</div>
</el-col>
<el-col :span="7" style="display: flex;align-items: center">
缩瞳:
<div class="radioItem" @click="form.miosis=!form.miosis">
<input :checked="form.miosis" type="radio">
</div>
<div class="radioItem" @click="form.miosis=!form.miosis">
<input :checked="!form.miosis" type="radio">
</div>
</el-col>
</div>
<el-form-item required label="预约时间:">
<el-date-picker
v-model="form.date"
type="datetime"
placeholder="选择日期时间"
/>
</el-form-item>
</el-form>
</my-dialog>
</template>
<script>
import MyDialog from '@/page-subspecialty/views/modules/nurseManagement/myDialog.vue'
export default {
name: 'UBMOrder',
components: { MyDialog },
props: {
isShow: {
type: Boolean,
default: false
},
patientInfo: {
type: Object,
default: () => {}
}
},
data() {
return {
show: false,
radio: '1',
print: {
id: 'UBMOrder'
},
form: {
patient: '',
doctor: '',
docAdvice: '',
remark: '',
doctorId: '',
eyeLevel: '',
mydriasis: false,
miosis: '',
date: ''
},
doctorList: []
}
},
watch: {
isShow(val) {
this.show = val
},
'patientInfo.id'() {
this.$nextTick(() => {
this.form.doctorId = this.patientInfo.doctorId
this.form.doctorName = this.patientInfo.doctorName
this.form.date = this.patientInfo.appointDate
})
}
},
created() {
this.getDoctorList()
},
methods: {
getDoctorList() {
this.$http.get('/sys/user', { params: { position: '门诊医师' }}).then(data => {
this.doctorList = data.data.data
})
},
closeDialog(val) {
this.$emit('close', val)
},
handleSave() {
const params = {
appointDate: this.$moment(this.form.date).format('YYYY-MM-DD HH:mm:ss'),
doctorId: this.form.doctorId,
doctorName: this.form.doctorName,
patientId: this.patientInfo.patientId,
patientName: this.patientInfo.patientName,
id: this.patientInfo.id
}
this.$http.post('/appoint/updateAppointInfo', params).then(() => {
this.$message.success('修改成功')
this.$emit('editSuccess')
this.closeDialog()
})
}
}
}
</script>
<style lang="scss" scoped>
.radioItem{
user-select: none;
cursor: pointer;
margin:0 8px;
display: flex;
}
input{
-webkit-appearance: checkbox !important;
margin-right: 5px !important;
}
::v-deep .el-form-item__label{
font-size: 14px;
}
::v-deep .el-form-item{
margin-bottom: 16px;
}
::v-deep .el-radio{
margin-right: 8px;
}
.patientDetail{
border: 1px solid #6EB1FF;
border-radius: 8px;
background: #E8F5FF;
padding: 16px;
font-size: 14px;
color: rgba(0, 0, 0, 0.88);
margin-bottom: 22px;
}
.detailItem{
display:flex;
margin: 8px 0;
div{
margin-right: 20px;
}
}
</style>

56
src/page-subspecialty/views/modules/nurseManagement/dialogTest.vue

@ -1,56 +0,0 @@
<template>
<div>
<el-button type="text" @click="isShow = true">点击打开 Dialog</el-button>
<el-button type="text" @click="ubmShow = true">UBM预约</el-button>
<el-button type="text" @click="addShow = true">新增</el-button>
<el-button type="text" @click="listShow = true">预约患者列表</el-button>
<el-button type="text" @click="numberShow = true">号源管理</el-button>
<re-dialog :is-show="isShow" @close="closeDialog1" />
<u-b-m-order :is-show="ubmShow" @close="closeDialog2" />
<add-project :is-show="addShow" @close="closeDialog3" />
<order-patient-list :is-show="listShow" @addOrder="addOrder" @close="closeDialog4" />
<number-manage :is-show="numberShow" @close="closeDialog5" />
</div>
</template>
<script>
import ReDialog from '@/page-subspecialty/views/modules/nurseManagement/reDialog.vue'
import UBMOrder from '@/page-subspecialty/views/modules/nurseManagement/UBMOrder.vue'
import AddProject from '@/page-subspecialty/views/modules/nurseManagement/addProject.vue'
import OrderPatientList from '@/page-subspecialty/views/modules/nurseManagement/orderPatientList.vue'
import NumberManage from '@/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/numberManage.vue'
export default {
name: 'NurseManagement',
components: { NumberManage, OrderPatientList, AddProject, UBMOrder, ReDialog },
data() {
return {
isShow: false,
ubmShow: false, // ubm
addShow: false,
listShow: false,
numberShow: false
}
},
methods: {
addOrder() {
this.ubmShow = true
},
closeDialog1(val) {
this.isShow = val
}, closeDialog2(val) {
this.ubmShow = val
}, closeDialog3(val) {
this.addShow = val
}, closeDialog4(val) {
this.listShow = val
}, closeDialog5(val) {
this.numberShow = val
}
}
}
</script>
<style scoped>
</style>

268
src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue

@ -0,0 +1,268 @@
<template>
<el-dialog top="30px" class="number-manage" append-to-body :visible.sync="visible" width="40%" :title="title" @close="closeDialog">
<el-form id="addPatientOrder" ref="addPatientForm" :rules="dataRule" size="small" :model="form" label-width="90px">
<el-form-item required label="选择患者:" prop="patientId">
<el-input v-model="form.patientId" :readonly="isEdit" suffix-icon="el-icon-search" placeholder="请输入登记号" @change="searchPatient" />
</el-form-item>
<div v-if="patientInfo" class="patientDetail">
<div style="font-size: 16px;font-weight: bold">患者信息</div>
<div class="detailItem">
<div>登记号{{ patientInfo.patientId }}</div>
<div>电话{{ patientInfo.patientPhone }}</div>
</div>
<div class="detailItem">
<div>姓名{{ patientInfo.patientName }}</div>
<div>性别{{ patientInfo.patientSex }}</div>
<div>生日{{ $moment(patientInfo.patientBirthday).format('YYYY-MM-DD') }}</div>
<div v-if="patientInfo.patientAge">年龄{{ patientInfo.patientAge }}</div>
<div>来源{{ patientInfo.source }}</div>
</div>
</div>
<el-form-item label="负责医生:">
<el-col :span="12">
<el-select v-model="form.doctorId" placeholder="请选择" @change="selectDoctor">
<el-option
v-for="item in doctorList"
:key="item.employeeId"
:label="item.realName"
:value="item.employeeId"
/>
</el-select>
</el-col>
<el-col :span="12" style="display: flex;align-items: center">
已开医嘱:
<div class="radioItem" @click="form.yzOpen='Y'">
<input :disabled="isEdit" :checked="form.yzOpen==='Y'" type="radio">
</div>
<div class="radioItem" @click="form.yzOpen='N'">
<input :disabled="isEdit" :checked="form.yzOpen==='N'" type="radio">
</div>
</el-col>
</el-form-item>
<el-form-item label="备注:">
<el-input v-model="form.remark" :readonly="isEdit" autosize type="textarea" />
</el-form-item>
<div style="display: flex;padding:0 0 20px 20px">
<el-col :span="10" style="display: flex;align-items: center">
眼别:
<div class="radioItem" @click="form.eyeType='OD'">
<input :disabled="isEdit" :checked="form.eyeType==='OD'" type="radio">OD
</div>
<div class="radioItem" @click="form.eyeType='OS'">
<input :disabled="isEdit" :checked="form.eyeType==='OS'" type="radio">OS
</div>
<div class="radioItem" @click="form.eyeType='OU'">
<input :disabled="isEdit" :checked="form.eyeType==='OU'" type="radio">OU
</div>
</el-col>
<el-col :span="7" style="display: flex;align-items: center">
散瞳:
<div class="radioItem" @click="form.pupilDilate='Y'">
<input :disabled="isEdit" :checked="form.pupilDilate==='Y'" type="radio">
</div>
<div class="radioItem" @click="form.pupilDilate='N'">
<input :disabled="isEdit" :checked="form.pupilDilate==='N'" type="radio">
</div>
</el-col>
<el-col :span="7" style="display: flex;align-items: center">
缩瞳:
<div class="radioItem" @click="form.pupilShrink='Y'">
<input :disabled="isEdit" :checked="form.pupilShrink==='Y'" type="radio">
</div>
<div class="radioItem" @click="form.pupilShrink='N'">
<input :disabled="isEdit" :checked="form.pupilShrink==='N'" type="radio">
</div>
</el-col>
</div>
<el-form-item required label="预约时间:" prop="date">
<el-date-picker
v-model="form.date"
type="datetime"
placeholder="选择日期时间"
/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button v-if="print" v-print="print" size="small">打印</el-button>
<el-button size="small" @click="closeDialog"> </el-button>
<el-button type="primary" size="small" @click="handleSave"> </el-button>
</span>
</el-dialog>
</template>
<script>
export default {
name: 'AddPatientOrder',
props: {
title: {
type: String,
default: '新增预约'
},
patientDetail: {
type: Object
},
project: {
type: Object
},
isEdit: {
type: Boolean,
default: false
}
},
data() {
return {
visible: false,
patientInfo: null,
form: {
patientId: '',
doctorName: '',
yzOpen: '',
remark: '',
doctorId: '',
eyeType: '',
pupilDilate: '',
pupilShrink: '',
date: ''
},
doctorList: [],
print: {
id: 'addPatientOrder'
}
}
},
computed: {
dataRule() {
return {
patientId: [
{ required: true, message: '请选择患者' }
],
date: [
{ required: true, message: '请选择时间' }
]
}
}
},
created() {
this.getDoctorList()
if (this.patientDetail) {
this.form.patientId = this.patientDetail.patientId
this.form.doctorId = this.patientDetail.doctorId
this.form.doctorName = this.patientDetail.doctorName
this.form.eyeType = this.patientDetail.eyeType
this.form.pupilDilate = this.patientDetail.pupilDilate
this.form.pupilShrink = this.patientDetail.pupilShrink
this.form.remark = this.patientDetail.remark
this.form.yzOpen = this.patientDetail.yzOpen
this.form.date = this.patientDetail.appointDate
this.patientInfo = this.patientDetail
}
},
methods: {
init() {
this.visible = true
},
//
searchPatient(val) {
this.$http.get('/appoint/getPatientInfo', { params: { patientId: val }}).then((data) => {
if (data.data.data.list.length) {
this.patientInfo = data.data.data.list[0]
}
})
},
//
getDoctorList() {
this.$http.get('/sys/user', { params: { position: '门诊医师' }}).then(data => {
this.doctorList = data.data.data
}).catch(err => {
this.$message.error(err.msg)
})
},
//
selectDoctor(val) {
const curDoctor = this.doctorList.find(item => item.employeeId === val)
this.form.doctorName = curDoctor.realName
},
//
handleSave() {
if (!this.isEdit) {
this.$refs.addPatientForm.validate((valid) => {
if (!valid) {
return false
}
const params = {
appointDate: this.$moment(this.form.date).format('YYYY-MM-DD HH:mm:ss'),
patientName: this.patientInfo.patientName,
jzNumber: this.patientInfo.jzNumber,
appointSource: this.patientInfo.source,
itemId: this.project.itemId,
itemName: this.project.itemName,
...this.form
}
this.$http.post('/appoint/saveAppointInfo', params).then(() => {
this.$message.success('添加成功')
this.$emit('updateAppoint')
this.visible = false
})
})
} else {
const params = {
appointDate: this.$moment(this.form.date).format('YYYY-MM-DD HH:mm:ss'),
doctorId: this.form.doctorId,
doctorName: this.form.doctorName,
patientId: this.form.patientId,
patientName: this.patientDetail.patientName,
id: this.patientDetail.id,
itemId: this.patientDetail.itemId
}
this.$http.post('/appoint/updateAppointInfo', params).then(() => {
this.$message.success('修改成功')
this.$emit('updateAppoint')
this.visible = false
})
}
},
//
closeDialog() {
this.$emit('closeDialog')
}
}
}
</script>
<style lang="scss" scoped>
.radioItem{
user-select: none;
cursor: pointer;
margin:0 8px;
display: flex;
}
input{
-webkit-appearance: checkbox !important;
margin-right: 5px !important;
}
::v-deep .el-form-item__label{
font-size: 14px;
}
::v-deep .el-form-item{
margin-bottom: 16px;
}
::v-deep .el-radio{
margin-right: 8px;
}
.patientDetail{
border: 1px solid #6EB1FF;
border-radius: 8px;
background: #E8F5FF;
padding: 16px;
font-size: 14px;
color: rgba(0, 0, 0, 0.88);
margin-bottom: 22px;
}
.detailItem{
display:flex;
margin: 8px 0;
div{
margin-right: 20px;
}
}
</style>

146
src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/doctor-schedule.vue

@ -18,7 +18,7 @@
@change="pickDateChange"
/>
</div>
<el-button v-if="title !=='plus'" type="primary" size="small" icon="el-icon-s-tools" @click="allPtClick">{{ sortName }}</el-button>
<el-button v-if="title !=='plus'" type="primary" size="small" icon="el-icon-s-tools">{{ sortName }}</el-button>
</div>
<div class="doctor-schedule-content">
<el-row class="weeks">
@ -83,16 +83,16 @@
@mouseover.stop="mouseoverHandle(index,weekInfoIndex,weekInfoItem,'morning')"
@mouseout="mouseoutHandle"
>
<p v-show="!weekInfoItem.morning.isAppoint" class="none"></p>
<p v-show="!weekInfoItem.morningOpen" class="none"></p>
<div
v-show="weekInfoItem.morning.isAppoint && (weekInfoItem.morning.maxNumber == weekInfoItem.morning.orderNum)"
v-show="weekInfoItem.morningOpen && (weekInfoItem.morning.maxNumber == weekInfoItem.morning.orderNum)"
class="yue-man"
>
<p>约满</p>
<p>{{ weekInfoItem.morning.orderNum }} / {{ weekInfoItem.morning.maxNumber }}</p>
</div>
<div
v-show="weekInfoItem.morning.isAppoint && (weekInfoItem.morning.maxNumber > weekInfoItem.morning.orderNum) "
v-show="weekInfoItem.morningOpen && (weekInfoItem.morning.maxNumber > weekInfoItem.morning.orderNum) "
class="yi-yue"
>
<p>已约</p>
@ -103,8 +103,7 @@
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning' && title !=='plus'"
class="show-plus-one"
>
<p @click="numberMangeClick(item,weekInfoItem,1,'排台详情')">详情</p>
<!-- <p @click="numberMangeClick(item,weekInfoItem,1,'排台管理')">排台管理</p>-->
<p @click="numberMangeClick(item,weekInfoItem,1,index,weekInfoIndex)">详情</p>
</div>
<div
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='morning'&& title =='plus'"
@ -138,16 +137,16 @@
@mouseover.stop="mouseoverHandle(index,weekInfoIndex,weekInfoItem,'after')"
@mouseout="mouseoutHandle"
>
<p v-show="!weekInfoItem.after.isAppoint" class="none"></p>
<p v-show="!weekInfoItem.afterOpen" class="none"></p>
<div
v-show="weekInfoItem.after.isAppoint && (weekInfoItem.after.maxNumber == weekInfoItem.after.orderNum)"
v-show="weekInfoItem.afterOpen && (weekInfoItem.after.maxNumber == weekInfoItem.after.orderNum)"
class="yue-man"
>
<p>约满</p>
<p>{{ weekInfoItem.after.orderNum }} / {{ weekInfoItem.after.maxNumber }}</p>
</div>
<div
v-show="weekInfoItem.after.isAppoint && (weekInfoItem.after.maxNumber > weekInfoItem.after.orderNum) "
v-show="weekInfoItem.afterOpen && (weekInfoItem.after.maxNumber > weekInfoItem.after.orderNum) "
class="yi-yue"
>
<p>已约</p>
@ -158,8 +157,7 @@
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after' && title !=='plus'"
class="show-plus-one"
>
<p @click="numberMangeClick(item,weekInfoItem,2,'排台详情')">详情</p>
<!-- <p @click="numberMangeClick(item,weekInfoItem,2,'排台管理')">排台管理</p>-->
<p @click="numberMangeClick(item,weekInfoItem,2,index,weekInfoIndex)">详情</p>
</div>
<div
v-show="currentIndex===index && currentWeekIndex===weekInfoIndex && mouseMoveIsShow && showMorningAfterText==='after' && title =='plus'"
@ -184,19 +182,13 @@
<numberDetailManage
v-if="numberManageVisible"
ref="numberManageRef"
:patients-list="curPatients"
:source-flag="sourceFlag"
:can-add="canAdd"
@closeDialog="numberManageVisible=false"
@getScheduleList="getScheduleList"
@rowList="rowList"
/>
<setOperaTime--
v-if="setOperaTimeVisible"
ref="setOperaTimeRef"
:source-flag="sourceFlag"
@closeDialog="setOperaTimeVisible=false"
@getScheduleList="getScheduleList"
@rowList="rowList"
/>
<operationDetail
v-if="operationDetailVisible"
ref="operationDetailRef"
@ -262,6 +254,11 @@ export default {
{ time: "00:00:00~24:00:00", label: "今日全部" }
],
numberManageVisible: false,
curPatients: [],
curIndex: '',
curWeekInfoIndex:"",
curTime: '',
canAdd: true,
setOperaTimeVisible:false,
operationDetailVisible: false,
mouseMoveIsShow: false,
@ -409,76 +406,6 @@ export default {
this.getScheduleList()
},
methods: {
getProjectSetting(){
this.$http.get('/appoint/itemList',{
params:{
limit:10,
page:1
}
}).then( data =>{
this.projectList = data.data.data.list
this.handleIsAppiont()
})
},
//
handleIsAppiont(){
this.doctorList.forEach(item=>{
const weekInfo = this.projectList.find(pro=>pro.itemId===item.itemId)
item.weekInfo.forEach(week=>{
weekInfo.openVoList.forEach(open=>{
if (open.time==='上午'){
switch (week.weekName){
case '周一':
this.$set(week.morning,'isAppoint',open.monTime)
break
case '周二':
this.$set(week.morning,'isAppoint',open.tuesTime)
break
case '周三':
this.$set(week.morning,'isAppoint',open.wedTime)
break
case '周四':
this.$set(week.morning,'isAppoint',open.thurTime)
break
case '周五':
this.$set(week.morning,'isAppoint',open.friTime)
break
case '周六':
this.$set(week.morning,'isAppoint',open.satTime)
break
case '周日':
this.$set(week.morning,'isAppoint',open.sunTime)
break
}
}else{
switch (week.weekName){
case '周一':
this.$set(week.after,'isAppoint',open.monTime)
break
case '周二':
this.$set(week.after,'isAppoint',open.tuesTime)
break
case '周三':
this.$set(week.after,'isAppoint',open.wedTime)
break
case '周四':
this.$set(week.after,'isAppoint',open.thurTime)
break
case '周五':
this.$set(week.after,'isAppoint',open.friTime)
break
case '周六':
this.$set(week.after,'isAppoint',open.satTime)
break
case '周日':
this.$set(week.after,'isAppoint',open.sunTime)
break
}
}
})
})
})
},
changeInput(e,index,weekInfoIndex,morOrAft) {
var pattern = /^[0-9][0-9]*$/
var regex=/^[0]+/
@ -491,7 +418,7 @@ export default {
this.doctorList[index].weekInfo[weekInfoIndex][morOrAft].maxNumber = 0
}
},
//
//
async getScheduleList() {
this.pageLoading = true
const { data: res } = await this.$http.get('/appoint/getAppointCalendarInfo', {
@ -502,22 +429,20 @@ export default {
if (res.code === 0) {
this.pageLoading = false
this.doctorList = res.data
this.getProjectSetting()
if (this.curTime===1){
const weekInfoItem = this.doctorList[this.curIndex].weekInfo[this.curWeekInfoIndex]
this.curPatients = weekInfoItem.morning.appointPatients
this.canAdd = weekInfoItem.morning.maxNumber>weekInfoItem.morning.orderNum
}else {
const weekInfoItem = this.doctorList[this.curIndex].weekInfo[this.curWeekInfoIndex]
this.curPatients = weekInfoItem.after.appointPatients
this.canAdd = weekInfoItem.after.maxNumber>weekInfoItem.after.orderNum
}
} else {
this.pageLoading = false
this.$message.error(res.msg)
}
},
//
allPtClick() {
// if(this.sortName === '') {
// this.sortName = ''
// // this.getBatchNumSet()
// } else {
// this.sortName = ''
// // this.batchNumSave()
// }
},
//
rowList(rowList) {
this.rowListObj = rowList
@ -681,25 +606,28 @@ export default {
this.currentRow = val;
},
//
async numberMangeClick(item, weekInfoItem, morOrAft, title) {
this.numberMangeClickFun(item, weekInfoItem, morOrAft, title)
async numberMangeClick(item, weekInfoItem, morOrAft,index,weekInfoIndex) {
this.numberMangeClickFun(item, weekInfoItem, morOrAft,index,weekInfoIndex)
},
numberMangeClickFun(item, weekInfoItem, morOrAft, title) {
numberMangeClickFun(item, weekInfoItem, morOrAft,index,weekInfoIndex) {
this.numberManageVisible = true
this.curIndex = index
this.curWeekInfoIndex = weekInfoIndex
this.curTime = morOrAft
this.$nextTick(() => {
console.log(weekInfoItem);
console.log(item);
if (morOrAft===1){
this.$refs.numberManageRef.appointPatients = weekInfoItem.morning.appointPatients
this.curPatients = weekInfoItem.morning.appointPatients
this.$refs.numberManageRef.dateInfo = weekInfoItem.date + '上午'
this.canAdd = weekInfoItem.morning.maxNumber>weekInfoItem.morning.orderNum
}else {
this.$refs.numberManageRef.appointPatients = weekInfoItem.after.appointPatients
this.curPatients = weekInfoItem.after.appointPatients
this.$refs.numberManageRef.dateInfo = weekInfoItem.date + '下午'
this.canAdd = weekInfoItem.after.maxNumber>weekInfoItem.after.orderNum
}
this.$refs.numberManageRef.curProject = item //
this.$refs.numberManageRef.projectName = item.itemName
this.$refs.numberManageRef.weekName = weekInfoItem.weekName
this.$refs.numberManageRef.morOrAft = morOrAft
this.$refs.numberManageRef.title = title
this.$refs.numberManageRef.dataForm.doctorCode = item.doctorCode
this.$refs.numberManageRef.dataForm.operaDate = weekInfoItem.date
this.$refs.numberManageRef.init()

75
src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/number-detail-manage.vue

@ -1,5 +1,5 @@
<template>
<el-dialog top="30px" class="number-manage" append-to-body :visible.sync="visible" width="50%" :title="title" @close="closeDialog">
<el-dialog top="30px" class="number-manage" append-to-body :visible.sync="visible" width="50%" @close="closeDialog">
<div slot="title">
<div>
<div class="title_header">已约患者列表</div>
@ -8,10 +8,10 @@
</div>
</div>
<el-row style="margin-bottom: 15px">
<el-col style="margin: 8px" :span="11">
<el-col v-if="canAdd" style="margin: 8px" :span="11">
<el-button style="width: 100%" size="mini" icon="el-icon-plus" type="primary" @click="addOrder">新增预约</el-button>
</el-col>
<el-col v-for="(item,index) in appointPatients" :key="index" :span="11" class="patientBox">
<el-col v-for="(item,index) in patientsList" :key="index" :span="11" class="patientBox">
<div class="patient_left">
<div style="margin-right: 8px;color: #1C76FD;">{{ item.appointDate }}</div>
<div style="margin-right: 8px">{{ item.patientName }}</div>
@ -19,34 +19,54 @@
<div>{{ item.patientAge }}</div>
</div>
<div class="patient_right">
<div class="edit">改约</div>
<div class="delete">删除</div>
<div class="edit" @click="changeOrder(item)">改约</div>
<div class="delete" @click="deleteOrder(item)">删除</div>
</div>
</el-col>
</el-row>
<add-patient-order
v-if="addPatientVisible"
ref="addPatientOrder"
:project="curProject"
:patient-detail="curPatient"
:title="addTitle"
:is-edit="isEdit"
@closeDialog="closeAddDialog"
@updateAppoint="updateAppoint"
/>
</el-dialog>
</template>
<script>
import EditOperation from '@/page-subspecialty/views/modules/nurseManagement/reservation/schedule/edit-operation.vue'
import AddPatientOrder from '@/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue'
export default {
components: { EditOperation },
components: { AddPatientOrder },
props: {
patientTypeList: {
patientsList: {
type: Array,
default: () => []
},
canAdd: {
type: Boolean,
default: true
}
},
data() {
return {
visible: false,
addPatientVisible: false,
dateInfo: '',
appointPatients: [],
isEdit: false,
projectName: '',
curProject: '',
curPatient: null,
morOrAft: '', //
weekName: '', //
title: '',
addTitle: '',
doctorName: '',
dataForm: {
operaDate: '', // ()
@ -85,10 +105,38 @@ export default {
this.$nextTick(() => {
this.$refs.dataForm ? this.$refs.dataForm.resetFields() : '' //
this.dataForm.morOrAft = this.morOrAft
// this.title === '' ? this.getPatientList() : this.getSourceList()
})
},
addOrder() {},
addOrder() {
this.addPatientVisible = true
this.addTitle = '新增预约'
this.$nextTick(() => {
this.$refs.addPatientOrder.init()
})
},
//
changeOrder(value) {
this.addPatientVisible = true
this.addTitle = '修改预约'
this.curPatient = value
this.isEdit = true
this.$nextTick(() => {
this.$refs.addPatientOrder.init()
})
},
//
deleteOrder(item) {
this.$confirmFun('确认删除吗?').then(() => {
this.$http.get('/appoint/delAppiontInfo', {
params: {
id: item.id
}
}).then(() => {
this.$message.success('删除成功')
this.$emit('getScheduleList')
})
})
},
//
async getSourceList() {
const { data: res } = await this.$http.get('/num/source/getList', {
@ -118,7 +166,6 @@ export default {
this.currentTableList.forEach(item => {
this.currentTableId.push(item.id)
})
console.log(this.currentTableId)
},
//
rowClick(val) {
@ -174,6 +221,12 @@ export default {
}
})
},
closeAddDialog() {
this.addPatientVisible = false
},
updateAppoint() {
this.$emit('getScheduleList')
},
//
closeDialog() {
this.$emit('closeDialog')

0
src/page-subspecialty/views/modules/nurseManagement/orderPatientList.vue → src/page-subspecialty/views/modules/nurseManagement/reservation/schedule/orderPatientList.vue

53
src/page-subspecialty/views/modules/nurseManagement/reservation/subList/index.vue

@ -79,14 +79,22 @@
@close="closeReDialog"
@saveAppoint="saveAppoint"
/>
<u-b-m-order ref="ubmOrder" :patient-info="patientInfo" :is-show="ubmShow" @editSuccess="editSuccess" @close="closeUbmDialog" />
<add-patient-order
v-if="addPatientVisible"
ref="addPatientOrder"
:patient-detail="curPatient"
title="修改预约"
:is-edit="true"
@closeDialog="closeAddDialog"
@updateAppoint="updateAppoint"
/>
<detail-view
v-if="detailViewVisible"
ref="viewRef"
:only-read="onlyRead"
:is-search="'1'"
:patient-id="patientInfo.patientId"
:patient-id-number="patientInfo.patientIdNumber"
:patient-id="curPatient.patientId"
:patient-id-number="curPatient.patientIdNumber"
@detailViewVisible="detailViewVisible=false"
/>
</div>
@ -94,12 +102,15 @@
<script>
import mixinViewModule from '@/mixins/view-module'
import DetailView from '@/components/360View/index1.vue'
import ReDialog from '@/page-subspecialty/views/modules/nurseManagement/reDialog.vue'
import UBMOrder from '@/page-subspecialty/views/modules/nurseManagement/UBMOrder.vue'
import ReDialog from '@/page-subspecialty/views/modules/nurseManagement/reservation/subList/reDialog.vue'
import AddProject from '@/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/addProject.vue'
import AddPatientOrder
from '@/page-subspecialty/views/modules/nurseManagement/reservation/schedule/addPatientOrder.vue'
export default {
name: 'SubList',
components: {
UBMOrder,
AddPatientOrder,
AddProject,
ReDialog,
DetailView
// scheduledOrder
@ -112,12 +123,10 @@ export default {
getDataListIsPage: true,
createdIsNeed: false
},
scheduledOrderVisible: false,
addPatientVisible: false,
detailViewVisible: false,
onlyRead: true,
reDialogShow: false,
ubmShow: false,
patientInfo: null,
dataForm: {
appointStatus: '',
searchType: '0',
@ -153,7 +162,9 @@ export default {
selectedProjects: [],
patientList: [],
//
currentCell: null
currentCell: null,
//
curPatient: null
}
},
created() {
@ -176,7 +187,7 @@ export default {
//
changeOrder() {
this.reDialogShow = true
this.$refs.reDialog.patients = JSON.parse(JSON.stringify(this.patientList))
this.$refs.reDialog.patients = JSON.parse(JSON.stringify(this.patientList)).filter(item => !!item.itemId)
},
closeReDialog(val) {
this.reDialogShow = val
@ -185,12 +196,11 @@ export default {
this.getDataList()
this.closeReDialog()
},
closeUbmDialog(val) {
this.ubmShow = val
closeAddDialog() {
this.addPatientVisible = false
},
//
editSuccess() {
this.getDataListInitial()
updateAppoint() {
this.getDataList()
},
handleSelectionChange(val) {
this.patientList = val
@ -212,9 +222,13 @@ export default {
},
//
editOpera(scopeRow) {
this.patientInfo = scopeRow
this.$refs.ubmOrder.form.patient = this.patientInfo.patientName
this.ubmShow = true
this.addPatientVisible = true
this.addTitle = '修改预约'
this.curPatient = scopeRow
this.isEdit = true
this.$nextTick(() => {
this.$refs.addPatientOrder.init()
})
},
//
cancelClick(scopeRow) {
@ -237,6 +251,7 @@ export default {
},
// 360
checkPatientDetail(scopeRow) {
this.curPatient = scopeRow
this.detailViewVisible = true
}
}

0
src/page-subspecialty/views/modules/nurseManagement/reDialog.vue → src/page-subspecialty/views/modules/nurseManagement/reservation/subList/reDialog.vue

0
src/page-subspecialty/views/modules/nurseManagement/addProject.vue → src/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/addProject.vue

2
src/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/index.vue

@ -284,7 +284,7 @@
</template>
<script>
import AddProject from '@/page-subspecialty/views/modules/nurseManagement/addProject.vue'
import AddProject from '@/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/addProject.vue'
import mixinViewModule from '@/mixins/view-module'
export default {

Loading…
Cancel
Save