Browse Source

预约配置完成

360view
bianyaqi 2 years ago
parent
commit
cd1ab26978
  1. 14
      src/page-subspecialty/views/modules/nurseManagement/UBMOrder.vue
  2. 183
      src/page-subspecialty/views/modules/nurseManagement/addProject.vue
  3. 5
      src/page-subspecialty/views/modules/nurseManagement/myDialog.vue
  4. 92
      src/page-subspecialty/views/modules/nurseManagement/reservation/subList/index.vue
  5. 190
      src/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/index.vue

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

@ -4,17 +4,17 @@
<el-form-item required label="选择患者:">
<el-input v-model="form.patient" suffix-icon="el-icon-search" />
</el-form-item>
<div class="patientDetail">
<div v-if="patientInfo" class="patientDetail">
<div style="font-size: 16px;font-weight: bold">患者信息</div>
<div class="detailItem">
<div>登记号132456</div>
<div>电话19912132456</div>
<div>登记号{{ patientInfo.patientId }}</div>
<div>电话{{ patientInfo.patientPhone }}</div>
</div>
<div class="detailItem">
<div>姓名张三</div>
<div>性别</div>
<div>生日1991-08-08</div>
<div>年龄23</div>
<div>姓名{{ patientInfo.patientName }}</div>
<div>性别{{ patientInfo.patientSex }}</div>
<div>生日{{ patientInfo.patientBirthday }}</div>
<div>年龄{{ patientInfo.patientAge }}</div>
<div>来源门诊/住院</div>
</div>
</div>

183
src/page-subspecialty/views/modules/nurseManagement/addProject.vue

@ -1,33 +1,49 @@
<template>
<my-dialog :title="title" :is-show="show" @close="closeDialog">
<el-form id="reOrder" ref="form" size="small" :model="form" label-width="130px">
<el-form-item required label="项目名称:" style="width: 100%">
<el-select v-model="form.doctor" placeholder="请选择" style="width: 100%">
<my-dialog :title="title" :is-show="show" @handleSave="handleSave" @close="closeDialog">
<el-form id="reOrder" ref="addForm" :rules="rules" size="small" :model="form" label-width="130px">
<el-form-item required label="项目名称:" style="width: 100%" prop="project">
<el-select v-model="form.project" placeholder="请选择" style="width: 100%">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.itemId"
:label="item.itemName"
:value="item.itemId"
/>
</el-select>
</el-form-item>
<div style="display: flex">
<el-form-item style="flex: 1" required label="上班时间 上午:">
<el-time-picker v-model="form.date" placeholder="选择时间" style="width: 100%;" />
<el-form-item style="flex: 1" required label="上班时间 上午:" prop="workTimeAm">
<el-time-select
v-model="form.workTimeAm"
:picker-options="{
start: '07:30',
end: '12:00'
}"
placeholder="选择时间"
style="width: 100%;"
/>
</el-form-item>
<el-form-item style="flex: 1" required label="时间间隔:">
<el-input v-model="form.minutes" placeholder="">
<el-form-item style="flex: 1" required label="时间间隔:" prop="timeInterval">
<el-input v-model="form.timeInterval" placeholder="">
<template slot="append">分钟</template>
</el-input>
</el-form-item>
</div>
<div style="display: flex">
<el-form-item style="flex: 1" required label="下班时间 下午:">
<el-time-picker v-model="form.date2" placeholder="选择时间" style="width: 100%;" />
<el-form-item style="flex: 1" required label="下班时间 下午:" prop="workTimePm">
<el-time-select
v-model="form.workTimePm"
:picker-options="{
start: '12:00',
end: '21:00'
}"
placeholder="选择时间"
style="width: 100%;"
/>
</el-form-item>
<el-form-item style="flex: 1" required label="人数上限:">
<el-input v-model="form.minutes" placeholder="">
<template slot="append"></template>
<el-form-item style="flex: 1" required label="人数上限:" prop="maxNumber">
<el-input v-model="form.maxNumber" placeholder="">
<template slot="append">(半天)</template>
</el-input>
</el-form-item>
</div>
@ -52,7 +68,7 @@
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.MonTime">
<el-checkbox v-model="scope.row.monTime" />
</template>
</el-table-column>
<el-table-column
@ -61,7 +77,7 @@
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.TuesTime">
<el-checkbox v-model="scope.row.tuesTime" />
</template>
</el-table-column>
<el-table-column
@ -70,7 +86,7 @@
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.WedTime">
<el-checkbox v-model="scope.row.wedTime" />
</template>
</el-table-column>
<el-table-column
@ -79,7 +95,7 @@
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.ThurTime">
<el-checkbox v-model="scope.row.thurTime" />
</template>
</el-table-column>
<el-table-column
@ -88,7 +104,7 @@
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.FriTime">
<el-checkbox v-model="scope.row.friTime" />
</template>
</el-table-column>
<el-table-column
@ -97,7 +113,7 @@
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.SatTime">
<el-checkbox v-model="scope.row.satTime" />
</template>
</el-table-column>
<el-table-column
@ -106,7 +122,7 @@
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.SunTime">
<el-checkbox v-model="scope.row.sunTime" />
</template>
</el-table-column>
</el-table>
@ -127,55 +143,122 @@ export default {
title: {
type: String,
default: ''
},
projectDetail: {
type: Object,
default: () => {}
}
},
data() {
return {
show: false,
form: {
date: '',
date2: '',
minutes: ''
project: '',
workTimeAm: '',
workTimePm: '',
timeInterval: '',
maxNumber: ''
},
options: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}],
options: [],
tableData: [
{
time: '上午',
MonTime: false,
TuesTime: false,
WedTime: false,
ThurTime: false,
FriTime: false,
SatTime: false,
SunTime: false
monTime: false,
tuesTime: false,
wedTime: false,
thurTime: false,
friTime: false,
satTime: false,
sunTime: false
}, {
time: '下午',
MonTime: false,
TuesTime: false,
WedTime: false,
ThurTime: false,
FriTime: false,
SatTime: false,
SunTime: false
monTime: false,
tuesTime: false,
wedTime: false,
thurTime: false,
friTime: false,
satTime: false,
sunTime: false
}
]
],
originForm: {},
originTable: [],
message: '',
rules: {
project: [
{ required: true, message: '请选择项目' }
],
workTimeAm: [
{ required: true, message: '请选择时间' }
],
workTimePm: [
{ required: true, message: '请选择时间' }
],
timeInterval: [
{ required: true, message: '请填写时间间隔' }
],
maxNumber: [
{ required: true, message: '请填写人数上限' }
]
}
}
},
watch: {
isShow(val) {
this.show = val
this.getDetailData()
}
},
created() {
this.originForm = JSON.parse(JSON.stringify(this.form))
this.originTable = JSON.parse(JSON.stringify(this.tableData))
this.queryProjects()
},
methods: {
queryProjects() {
this.$http.get('/patient/getZlItemDict', { params: { isAppoint: 1 }}).then(data => {
this.options = data.data.data
})
},
getDetailData() {
if (this.title === '修改项目') {
this.$nextTick(() => {
this.message = '修改成功'
this.tableData = JSON.parse(JSON.stringify(this.projectDetail.openVoList))
this.form = JSON.parse(JSON.stringify(this.projectDetail))
this.form.project = this.projectDetail.itemId
})
} else {
this.$nextTick(() => {
this.form = this.originForm
this.tableData = this.originTable
this.message = '新增成功'
this.$refs['addForm'].resetFields()
})
}
},
closeDialog(val) {
this.show = val
this.$emit('close', val)
this.$refs['addForm'].resetFields()
this.$emit('closeDialog', val)
},
//
handleSave() {
this.$refs['addForm'].validate((valid) => {
if (!valid) {
return false
}
const project = this.options.find(pro => pro.itemId === this.form.project)
const params = {
itemId: this.form.project,
...this.form,
itemName: project.itemName || '',
openVoList: this.tableData
}
this.$http.post('/appoint/saveOrUpdateAppointItem', params).then(() => {
this.$message.success(this.message)
this.$emit('refreshList')
})
})
}
}
}

5
src/page-subspecialty/views/modules/nurseManagement/myDialog.vue

@ -43,12 +43,15 @@ export default {
this.dialogVisible = val
}
},
created() {
console.log('asdfasdf')
},
methods: {
handleClose() {
this.$emit('close', false)
},
handleSave() {
this.handleClose()
this.$emit('handleSave')
}
}
}

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

@ -41,7 +41,6 @@
tooltip-effect="dark"
style="width: 100%"
:cell-class-name="tableCellClassName"
@sort-change="sortChange"
@row-dblclick="dbclick"
>
<el-table-column type="selection" width="50px" />
@ -71,15 +70,15 @@
<el-pagination background layout="total,prev, pager, next" :total="total" :current-page.sync="page" @current-change="pageCurrentChangeHandle" />
</div>
</div>
<re-dialog :is-show="reDialogShow" @close="closeReDialog" />
<u-b-m-order :is-show="ubmShow" @close="closeUbmDialog" />
<re-dialog :projects="selectedProjects" :is-show="reDialogShow" @close="closeReDialog" />
<u-b-m-order :patient-info="patientInfo" :is-show="ubmShow" @close="closeUbmDialog" />
<detail-view
v-if="detailViewVisible"
ref="viewRef"
:only-read="onlyRead"
:is-search="'1'"
:patient-id="patientId"
:patient-id-number="patientIdNumber"
:patient-id="patientInfo.patientId"
:patient-id-number="patientInfo.patientIdNumber"
@detailViewVisible="detailViewVisible=false"
/>
</div>
@ -110,8 +109,7 @@ export default {
onlyRead: true,
reDialogShow: false,
ubmShow: false,
patientId: '',
patientIdNumber: '',
patientInfo: null,
dataForm: {
appointStatus: '',
searchType: '0'
@ -144,26 +142,7 @@ export default {
}],
projects: [],
project: '全部项目',
// 0: 1:2:3: 4: 5:
statusList: [{
status: 0,
name: '等待签到'
}, {
status: 1,
name: '等待呼叫'
}, {
status: 2,
name: '呼叫中'
}, {
status: 3,
name: '手术中'
}, {
status: 4,
name: '手术结束'
}, {
status: 100,
name: '已取消'
}],
selectedProjects: [],
doctorList: [],
operaList: [],
currentRow: {},
@ -172,14 +151,11 @@ export default {
}
},
created() {
// this.dataForm.startTime = this.$moment().format('YYYY-MM-DD')
// this.dataForm.endTime = this.$moment().format('YYYY-MM-DD')
this.queryProjects()
// this.getDoctorList()
// this.getOperaList()
this.getDataListInitial()
},
methods: {
//
queryProjects() {
this.$http.get('/patient/getZlItemDict', { params: { isAppoint: 1 }}).then(data => {
this.projects = data.data.data
@ -195,37 +171,6 @@ export default {
closeUbmDialog(val) {
this.ubmShow = val
},
//
dateChange(e) {
this.dataForm.startTime = e ? e[0] : ''
this.dataForm.endTime = e ? e[1] : ''
this.getDataListInitial()
},
//
async getDoctorList() {
const { data: res } = await this.$http.get('/sys/user/getDoctorList')
if (res.code === 0) {
this.doctorList = res.data
} else {
this.$message.error(res.msg)
}
},
//
async getOperaList() {
const { data: res } = await this.$http.get('/opera/getOperaNameList')
if (res.code === 0) {
this.operaList = res.data
} else {
this.$message.error(res.msg)
}
},
//
sortChange(e) {
console.log(e)
this.order = e.order === 'descending' ? 'desc' : 'asc'
this.orderField = e.column.sortable
this.getDataList()
},
// index
tableCellClassName({ row, column, rowIndex, columnIndex }) {
row.index = rowIndex
@ -241,27 +186,12 @@ export default {
this.$refs[row.index + ',' + column.index].focus()
})
},
// inputinput
hideInput(scopeRow) {
this.currentCell = null
const operaParams = scopeRow
operaParams.operaTime = scopeRow.operaTime ? scopeRow.operaTime + ':00' : ''
this.updateOpera(operaParams)
},
async updateOpera(operaParams) {
const { data: res } = await this.$http.post('/opera/updateOpera', operaParams)
if (res.code === 0) {
this.getDataList()
} else {
this.$message.error(res.msg)
}
},
//
//
editOpera(scopeRow) {
this.currentRow = scopeRow
this.ubmShow = true
},
//
//
cancelClick(scopeRow) {
this.$confirmFun('确定要取消此患者预约吗?').then(async() => {
const { data: res } = await this.$http.get('/appoint/delAppiontInfo', {
@ -280,10 +210,10 @@ export default {
}
})
},
// 360
checkPatientDetail(scopeRow) {
this.detailViewVisible = true
this.patientId = scopeRow.patientId
this.patientIdNumber = scopeRow.patientIdNumber
this.patientInfo = scopeRow
}
}
}

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

@ -5,18 +5,17 @@
</div>
<div>
<el-table
:data="tableData"
:data="dataList"
style="width: 100%"
>
<el-table-column
:resizable="false"
prop="projectName"
prop="itemName"
label="检查项目"
width="150"
width="200"
/>
<el-table-column
:resizable="false"
prop="Mon"
label="周一"
align="center"
>
@ -28,7 +27,7 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.monFront" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'mon','am')" />
</template>
</el-table-column>
<el-table-column
@ -39,13 +38,12 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.monAfter" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'mon','pm')" />
</template>
</el-table-column>
</el-table-column>
<el-table-column
:resizable="false"
prop="Tues"
label="周二"
align="center"
>
@ -57,7 +55,7 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.tuesFront" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'tues','am')" />
</template>
</el-table-column>
<el-table-column
@ -68,13 +66,12 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.tuesAfter" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'tues','pm')" />
</template>
</el-table-column>
</el-table-column>
<el-table-column
:resizable="false"
prop="Wed"
label="周三"
align="center"
>
@ -86,7 +83,7 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.webFront" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'wed','am')" />
</template>
</el-table-column>
<el-table-column
@ -97,13 +94,12 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.webAfter" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'wed','pm')" />
</template>
</el-table-column>
</el-table-column>
<el-table-column
:resizable="false"
prop="Thur"
label="周四"
align="center"
>
@ -115,7 +111,7 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.thurFront" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'thur','am')" />
</template>
</el-table-column>
<el-table-column
@ -126,13 +122,12 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.thurAfter" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'thur','pm')" />
</template>
</el-table-column>
</el-table-column>
<el-table-column
:resizable="false"
prop="Fri"
label="周五"
align="center"
>
@ -144,7 +139,7 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.friFront" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'fri','am')" />
</template>
</el-table-column>
<el-table-column
@ -155,13 +150,12 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.friAfter" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'fri','pm')" />
</template>
</el-table-column>
</el-table-column>
<el-table-column
:resizable="false"
prop="Sat"
label="周六"
align="center"
>
@ -173,7 +167,7 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.satFront" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'sat','am')" />
</template>
</el-table-column>
<el-table-column
@ -184,13 +178,12 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.satAfter" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'sat','pm')" />
</template>
</el-table-column>
</el-table-column>
<el-table-column
:resizable="false"
prop="Sun"
label="周日"
align="center"
>
@ -202,7 +195,7 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.sunFront" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'sun','am')" />
</template>
</el-table-column>
<el-table-column
@ -213,62 +206,52 @@
width="50"
>
<template slot-scope="scope">
<el-checkbox v-model="scope.row.sunAfter" />
<el-checkbox disabled :value="handleIsSelected(scope.row.openVoList,'sun','pm')" />
</template>
</el-table-column>
</el-table-column>
<el-table-column
:resizable="false"
prop="Sun"
label="上班时间"
align="center"
>
<el-table-column
prop="workTimeAm"
:resizable="false"
prop="Sun"
label="上午"
align="center"
/>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.SunTime">
<input class="checkTime" type="checkbox" :ischecked="scope.row.workTimeAm">
</template>
</el-table-column>
<el-table-column
:resizable="false"
prop="Sun"
label="上班时间"
align="center"
>
<el-table-column
prop="workTimePm"
:resizable="false"
prop="Sun"
label="下午"
align="center"
/>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.SunTime">
<input class="checkTime" type="checkbox" :ischecked="scope.row.workTimePm">
</template>
</el-table-column>
<el-table-column
:resizable="false"
prop="Sun"
prop="timeInterval"
label="时间间隔"
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.SunTime">
</template>
</el-table-column>
/>
<el-table-column
:resizable="false"
prop="Sun"
prop="maxNumber"
label="人数上限"
align="center"
>
<template slot-scope="scope">
<input class="checkTime" type="checkbox" :ischecked="scope.row.SunTime">
</template>
</el-table-column>
/>
<el-table-column
:resizable="false"
label="操作"
@ -290,59 +273,113 @@
</el-table-column>
</el-table>
</div>
<add-project :title="title" :is-show="addShow" @close="closeDialog" />
<add-project
:project-detail="projectItem"
:title="title"
:is-show="addShow"
@refreshList="refreshList"
@closeDialog="closeDialog"
/>
</div>
</template>
<script>
import AddProject from '@/page-subspecialty/views/modules/nurseManagement/addProject.vue'
import mixinViewModule from '@/mixins/view-module'
export default {
name: 'SubSetting',
components: { AddProject },
mixins: [mixinViewModule],
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/appoint/itemList',
getDataListIsPage: true,
createdIsNeed: false
},
dataForm: {
appointStatus: '',
searchType: '0'
},
addShow: false,
title: '',
tableData: [
{
projectName: '视诱发电位',
monFront: false,
monAfter: false,
tuesFront: false,
tuesAfter: false,
webFront: false,
webAfter: false,
thurFront: false,
thurAfter: false,
friFront: false,
friAfter: false,
satFront: false,
satAfter: false,
sunFront: false,
sunAfter: false
}, {
projectName: '电脑视野计检查',
MonTime: false,
TuesTime: false,
WedTime: false,
ThurTime: false,
FriTime: false,
SatTime: false,
SunTime: false
}
]
projectItem: null
}
},
created() {
this.getDataListInitial()
},
methods: {
editOpera() {
refreshList() {
this.addShow = false
this.getDataListInitial()
},
//
handleIsSelected(value, week, time) {
if (!value) {
return false
}
if (time === 'am') {
switch (week) {
case 'mon':
return value[0].monTime
case 'tues':
return value[0].tuesTime
case 'wed':
return value[0].wedTime
case 'thur':
return value[0].thurTime
case 'fri':
return value[0].friTime
case 'sat':
return value[0].satTime
case 'sun':
return value[0].sunTime
}
} else {
switch (week) {
case 'mon':
return value[1].monTime
case 'tues':
return value[1].tuesTime
case 'wed':
return value[1].wedTime
case 'thur':
return value[1].thurTime
case 'fri':
return value[1].friTime
case 'sat':
return value[1].satTime
case 'sun':
return value[1].sunTime
}
}
},
//
editOpera(scopeRow) {
this.title = '修改项目'
this.addShow = true
this.projectItem = scopeRow
},
//
cancelClick(scopeRow) {
this.$confirmFun('确定取消该项目吗?').then(() => {
this.$http.get('/appoint/delAppiontItem', {
params: {
itemId: scopeRow.itemId
}
}).then(() => {
this.getDataListInitial()
this.$message.success('删除成功')
})
})
},
cancelClick() {},
//
closeDialog(val) {
this.addShow = val
},
//
addProject() {
this.title = '新增项目'
this.addShow = true
@ -352,6 +389,13 @@ export default {
</script>
<style lang="scss" scoped>
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{
background: #409EFF;
border-color: #409EFF;
}
::v-deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{
border-color: #fff
}
::v-deep .checkFont{
font-size: 12px !important;
}

Loading…
Cancel
Save