|
|
@ -1,119 +1,120 @@ |
|
|
|
<template> |
|
|
|
<!-- 一已约患者列表 --> |
|
|
|
<div class="scheduled-patient"> |
|
|
|
<div class="scheduled-patient-head"> |
|
|
|
<el-select v-model="searchType" placeholder="请选择" size="small" @change="getDataListInitial"> |
|
|
|
<el-option |
|
|
|
v-for="item in options" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
<el-select v-model="project" style="margin-left: 15px" placeholder="请选择" size="small" @change="getDataListInitial"> |
|
|
|
<el-option |
|
|
|
v-for="item in projects" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="scheduled-patient-content"> |
|
|
|
<el-table |
|
|
|
ref="multipleTable" |
|
|
|
:data="dataList" |
|
|
|
tooltip-effect="dark" |
|
|
|
style="width: 100%" |
|
|
|
:cell-class-name="tableCellClassName" |
|
|
|
@sort-change="sortChange" |
|
|
|
@row-dblclick="dbclick" |
|
|
|
> |
|
|
|
<el-table-column type="selection" width="50px" /> |
|
|
|
<el-table-column prop="patientId" label="登记号" header-align="center" align="center" width="150px" /> |
|
|
|
<el-table-column prop="caseId" label="就诊号" header-align="center" align="center" width="150px" /> |
|
|
|
<el-table-column prop="patientName" label="患者姓名" header-align="center" align="center" width="150px" /> |
|
|
|
<el-table-column label="负责医生" header-align="center" align="center" width="150px"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.mainDoctorName ? scope.row.mainDoctorName : '-' }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="预约时间" header-align="center" align="center" sortable="OPERA_DATE"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.orderTime ? scope.row.orderTime : '-' }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="检查项目" prop="project" header-align="center" align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="scope.row.ouOpera">OU:{{ scope.row.ouOpera }}</div> |
|
|
|
<div v-if="scope.row.odOpera">OD:{{ scope.row.odOpera }}</div> |
|
|
|
<div v-if="scope.row.osOpera">OS:{{ scope.row.osOpera }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="眼别" prop="eyeLevel" header-align="center" align="center"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-show="scope.row.operaStatus == 0"> |
|
|
|
<span class="circle-status circle-green" /> |
|
|
|
<span>等待签到</span> |
|
|
|
</div> |
|
|
|
<div v-show="scope.row.operaStatus == 1"> |
|
|
|
<span class="circle-status circle-green" /> |
|
|
|
<span>等待呼叫</span> |
|
|
|
</div> |
|
|
|
<div v-show="scope.row.operaStatus == 2"> |
|
|
|
<span class="circle-status circle-red" /> |
|
|
|
<span>呼叫中</span> |
|
|
|
</div> |
|
|
|
<div v-show="scope.row.operaStatus == 3"> |
|
|
|
<span class="circle-status circle-yellow" /> |
|
|
|
<span>手术中</span> |
|
|
|
</div> |
|
|
|
<div v-show="scope.row.operaStatus == 4"> |
|
|
|
<span class="circle-status circle-grey" /> |
|
|
|
<span>手术结束</span> |
|
|
|
</div> |
|
|
|
<div v-show="scope.row.operaStatus == 100"> |
|
|
|
<span class="circle-status circle-grey" /> |
|
|
|
<span>已取消</span> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="操作" header-align="center" align="center" width="200px"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="scope.row.operaStatus === 0" class="call" @click="editOpera(scope.row)">改约</span> |
|
|
|
<span v-if="scope.row.operaStatus === 0" class="call" @click="cancelClick(scope.row)">取消</span> |
|
|
|
<span v-if="scope.row.operaStatus === 0" class="call" @click="cancelClick(scope.row)">患者360</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination background layout="total,prev, pager, next" :total="total" :current-page.sync="page" @current-change="pageCurrentChangeHandle" /> |
|
|
|
<div class="nurse_content"> |
|
|
|
<div v-if="!detailViewVisible" class="scheduled-patient"> |
|
|
|
<div class="scheduled-patient-head"> |
|
|
|
<div> |
|
|
|
<el-select |
|
|
|
v-model="dataForm.searchType" |
|
|
|
placeholder="请选择" |
|
|
|
size="small" |
|
|
|
@change="getDataListInitial" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in options" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
<el-select |
|
|
|
v-model="project" |
|
|
|
style="margin-left: 15px" |
|
|
|
placeholder="请选择" |
|
|
|
size="small" |
|
|
|
@change="getDataListInitial" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in projects" |
|
|
|
:key="item.itemId" |
|
|
|
:label="item.itemName" |
|
|
|
:value="item.itemId" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<el-button type="primary" icon="el-icon-edit" size="small" @click="changeOrder">改约</el-button> |
|
|
|
</div> |
|
|
|
<div class="scheduled-patient-content"> |
|
|
|
<el-table |
|
|
|
ref="multipleTable" |
|
|
|
:data="dataList" |
|
|
|
tooltip-effect="dark" |
|
|
|
style="width: 100%" |
|
|
|
:cell-class-name="tableCellClassName" |
|
|
|
@sort-change="sortChange" |
|
|
|
@row-dblclick="dbclick" |
|
|
|
> |
|
|
|
<el-table-column type="selection" width="50px" /> |
|
|
|
<el-table-column prop="patientId" label="登记号" header-align="center" align="center" width="150px" /> |
|
|
|
<el-table-column prop="jzNumber" label="就诊号" header-align="center" align="center" width="150px" /> |
|
|
|
<el-table-column prop="patientName" label="患者姓名" header-align="center" align="center" width="150px" /> |
|
|
|
<el-table-column label="负责医生" header-align="center" align="center" width="150px"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.doctorName ? scope.row.doctorName : '-' }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="预约时间" header-align="center" align="center" width="170px"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
{{ scope.row.appointDate ? scope.row.appointDate : '-' }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column label="检查项目" prop="appointItemName" header-align="center" align="center" /> |
|
|
|
<el-table-column label="眼别" prop="eyeType" header-align="center" align="center" /> |
|
|
|
<el-table-column label="操作" header-align="center" align="center" width="200px"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span class="call" @click="editOpera(scope.row)">改约</span> |
|
|
|
<span class="cancel" @click="cancelClick(scope.row)">取消</span> |
|
|
|
<span class="call" @click="checkPatientDetail(scope.row)">患者360</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<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" /> |
|
|
|
<detail-view |
|
|
|
v-if="detailViewVisible" |
|
|
|
ref="viewRef" |
|
|
|
:only-read="onlyRead" |
|
|
|
:is-search="'1'" |
|
|
|
:patient-id="patientId" |
|
|
|
:patient-id-number="patientIdNumber" |
|
|
|
@detailViewVisible="detailViewVisible=false" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<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' |
|
|
|
export default { |
|
|
|
name: 'SubList', |
|
|
|
components: { |
|
|
|
UBMOrder, |
|
|
|
ReDialog, |
|
|
|
DetailView |
|
|
|
// scheduledOrder |
|
|
|
}, |
|
|
|
mixins: [mixinViewModule], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
mixinViewModuleOptions: { |
|
|
|
getDataListURL: '/opera/getList', |
|
|
|
getDataListURL: '/appoint/page', |
|
|
|
getDataListIsPage: true, |
|
|
|
createdIsNeed: false |
|
|
|
}, |
|
|
|
scheduledOrderVisible: false, |
|
|
|
nextVisitTime: [], |
|
|
|
detailViewVisible: false, |
|
|
|
onlyRead: true, |
|
|
|
reDialogShow: false, |
|
|
|
ubmShow: false, |
|
|
|
patientId: '', |
|
|
|
patientIdNumber: '', |
|
|
|
dataForm: { |
|
|
|
endTime: '', |
|
|
|
startTime: '', |
|
|
|
status: '', |
|
|
|
doctorCode: '', |
|
|
|
operaName: '', |
|
|
|
patientId: '' |
|
|
|
appointStatus: '', |
|
|
|
searchType: '0' |
|
|
|
}, |
|
|
|
options: [ |
|
|
|
{ |
|
|
@ -141,34 +142,8 @@ export default { |
|
|
|
value: '', |
|
|
|
label: '全部' |
|
|
|
}], |
|
|
|
projects: [ |
|
|
|
{ |
|
|
|
value: '0', |
|
|
|
label: '今天' |
|
|
|
}, { |
|
|
|
value: '1', |
|
|
|
label: '昨天' |
|
|
|
}, { |
|
|
|
value: '2', |
|
|
|
label: '前天' |
|
|
|
}, { |
|
|
|
value: '3', |
|
|
|
label: '近三天' |
|
|
|
}, { |
|
|
|
value: '4', |
|
|
|
label: '近一周' |
|
|
|
}, { |
|
|
|
value: '5', |
|
|
|
label: '近一个月 ' |
|
|
|
}, { |
|
|
|
value: '6', |
|
|
|
label: '近半年 ' |
|
|
|
}, { |
|
|
|
value: '', |
|
|
|
label: '全部' |
|
|
|
}], |
|
|
|
searchType: '0', |
|
|
|
project: '0', |
|
|
|
projects: [], |
|
|
|
project: '全部项目', |
|
|
|
// 0:等待签到 1:等待呼叫,2:呼叫中,3:手术中 4:手术结束 5:已取消 |
|
|
|
statusList: [{ |
|
|
|
status: 0, |
|
|
@ -192,21 +167,34 @@ export default { |
|
|
|
doctorList: [], |
|
|
|
operaList: [], |
|
|
|
currentRow: {}, |
|
|
|
today: '', |
|
|
|
// 用一个字符串来保存当前双击的是哪一个单元格 |
|
|
|
currentCell: null |
|
|
|
} |
|
|
|
}, |
|
|
|
created() { |
|
|
|
this.today = this.$moment().format('YYYY-MM-DD') |
|
|
|
this.dataForm.startTime = this.$moment().format('YYYY-MM-DD') |
|
|
|
this.dataForm.endTime = this.$moment().format('YYYY-MM-DD') |
|
|
|
this.nextVisitTime = [this.dataForm.startTime, this.dataForm.endTime] |
|
|
|
this.getDoctorList() |
|
|
|
this.getOperaList() |
|
|
|
// 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 |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 改约 |
|
|
|
changeOrder() { |
|
|
|
this.reDialogShow = true |
|
|
|
}, |
|
|
|
closeReDialog(val) { |
|
|
|
this.reDialogShow = val |
|
|
|
}, |
|
|
|
closeUbmDialog(val) { |
|
|
|
this.ubmShow = val |
|
|
|
}, |
|
|
|
// 日期改变时 |
|
|
|
dateChange(e) { |
|
|
|
this.dataForm.startTime = e ? e[0] : '' |
|
|
@ -271,18 +259,15 @@ export default { |
|
|
|
// 修改手术 |
|
|
|
editOpera(scopeRow) { |
|
|
|
this.currentRow = scopeRow |
|
|
|
this.scheduledOrderVisible = true |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs.scheduledOrderRef.init() |
|
|
|
this.$refs.scheduledOrderRef.title = '修改预约' |
|
|
|
}) |
|
|
|
this.ubmShow = true |
|
|
|
}, |
|
|
|
// 取消手术 |
|
|
|
cancelClick(scopeRow) { |
|
|
|
this.$confirmFun('确定要取消此患者手术预约吗?', '已放弃取消操作').then(async() => { |
|
|
|
const { data: res } = await this.$http.post('/opera/cancelStatus', { |
|
|
|
id: scopeRow.id, |
|
|
|
operaStatus: 100 |
|
|
|
this.$confirmFun('确定要取消此患者预约吗?').then(async() => { |
|
|
|
const { data: res } = await this.$http.get('/appoint/delAppiontInfo', { |
|
|
|
params: { |
|
|
|
patientId: scopeRow.patientId |
|
|
|
} |
|
|
|
}) |
|
|
|
if (res.code === 0) { |
|
|
|
this.getDataList() |
|
|
@ -294,11 +279,19 @@ export default { |
|
|
|
this.$message.error(res.msg) |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
checkPatientDetail(scopeRow) { |
|
|
|
this.detailViewVisible = true |
|
|
|
this.patientId = scopeRow.patientId |
|
|
|
this.patientIdNumber = scopeRow.patientIdNumber |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
|
|
.nurse_content{ |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
.scheduled-patient { |
|
|
|
background: #fff; |
|
|
|
.scheduled-patient-content { |
|
|
@ -307,12 +300,19 @@ export default { |
|
|
|
} |
|
|
|
.scheduled-patient-head { |
|
|
|
padding: 10px 16px 0 16px; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
} |
|
|
|
.call { |
|
|
|
cursor: pointer; |
|
|
|
color: #1890ff; |
|
|
|
padding-right: 8px; |
|
|
|
} |
|
|
|
.cancel{ |
|
|
|
cursor: pointer; |
|
|
|
padding-right: 8px; |
|
|
|
color: #FF4D4F; |
|
|
|
} |
|
|
|
} |
|
|
|
.scheduled-patient { |
|
|
|
.form-item-date{ |
|
|
|