7 changed files with 639 additions and 306 deletions
@ -0,0 +1,267 @@ |
|||
<template> |
|||
<div> |
|||
<head-template head-left=""> |
|||
<el-button type="primary" size="small">保存</el-button> |
|||
<el-button v-print="'cornealPrint'" size="small">打印</el-button> |
|||
</head-template> |
|||
<div class="notice-content"> |
|||
<div class="notice-box"> |
|||
<div id="cornealPrint" class="notice_tip" style="page-break-after:always"> |
|||
<h3 style="text-align: center;margin-bottom: 32px;"> |
|||
角膜塑形镜复查单 |
|||
</h3> |
|||
<table class="cornealTable"> |
|||
<tr> |
|||
<td colspan="2"><div class="tdItem">姓名 <el-input v-model="formData.patient.name" style="flex: 1" placeholder="" /></div></td> |
|||
<td colspan="2"> |
|||
<div class="tdItem">检查日期 |
|||
<el-date-picker |
|||
v-model="formData.patient.checkDate" |
|||
type="date" |
|||
placeholder="选择日期" |
|||
/> |
|||
</div> |
|||
</td> |
|||
<td colspan="2"><div class="tdItem">已戴镜时间 <el-input v-model="formData.patient.wearTime" style="flex: 1" placeholder="" /></div></td> |
|||
</tr> |
|||
<tr> |
|||
<td colspan="6"> |
|||
<div style="display: flex;flex-wrap: wrap"> |
|||
<div v-for="(item,index) in formData.checkList" :key="index" class="checkItem" @click="item.isSelect=!item.isSelect"> |
|||
<input type="checkbox" :checked="item.isSelect">{{ item.name }} |
|||
</div> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td colspan="2">项目</td> |
|||
<td colspan="2">右眼</td> |
|||
<td colspan="2">左眼</td> |
|||
</tr> |
|||
<tr v-for="(item,index) in formData.projectList" :key="`${index}_${index}`"> |
|||
<template v-if="index<4"> |
|||
<td colspan="2">{{ item.name }}</td> |
|||
<td colspan="2"><el-input v-model="item.os" /></td> |
|||
<td colspan="2"><el-input v-model="item.od" /></td> |
|||
</template> |
|||
</tr> |
|||
<tr> |
|||
<td rowspan="4">{{ formData.projectList[4].name }}</td> |
|||
</tr> |
|||
<tr v-for="(item,idx) in formData.projectList[4].areaList" :key="`${item}_${idx}`"> |
|||
<td>{{ item.name }}</td> |
|||
<td colspan="2"><el-input v-model="item.os" /></td> |
|||
<td colspan="2"><el-input v-model="item.od" /></td> |
|||
</tr> |
|||
<tr> |
|||
<td colspan="2">{{ formData.projectList[5].name }}</td> |
|||
<td colspan="2"> |
|||
<div style="display: flex;flex-wrap: wrap"> |
|||
<div v-for="(item,index) in formData.projectList[5].osList" :key="index" class="checkItem" @click="item.isSelect=!item.isSelect"> |
|||
<input type="checkbox" :checked="item.isSelect">{{ item.name }} |
|||
</div> |
|||
</div> |
|||
</td> |
|||
<td colspan="2"> |
|||
<div style="display: flex;flex-wrap: wrap"> |
|||
<div v-for="(item,index) in formData.projectList[5].odList" :key="index" class="checkItem" @click="item.isSelect=!item.isSelect"> |
|||
<input type="checkbox" :checked="item.isSelect">{{ item.name }} |
|||
</div> |
|||
</div> |
|||
</td> |
|||
</tr> |
|||
<tr> |
|||
<td>备注</td> |
|||
<td /> |
|||
<td /> |
|||
<td /> |
|||
<td /> |
|||
<td /> |
|||
</tr> |
|||
<tr> |
|||
<td colspan="3">检查人签字</td> |
|||
<td colspan="3">检查人签字</td> |
|||
</tr> |
|||
</table> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import headTemplate from '@/components/head' |
|||
export default { |
|||
name: 'CornealReview', |
|||
components: { |
|||
headTemplate |
|||
}, |
|||
data() { |
|||
return { |
|||
formData: { |
|||
patient: { |
|||
name: '', |
|||
checkDate: '', |
|||
wearTime: '' |
|||
}, |
|||
checkList: [ |
|||
{ |
|||
name: '正常', |
|||
isSelect: false |
|||
}, { |
|||
name: '重影', |
|||
isSelect: false |
|||
}, { |
|||
name: '视力波动', |
|||
isSelect: false |
|||
}, { |
|||
name: '异物感', |
|||
isSelect: false |
|||
}, { |
|||
name: '镜片难摘', |
|||
isSelect: false |
|||
}, { |
|||
name: '眼红', |
|||
isSelect: false |
|||
}, { |
|||
name: '眼痛', |
|||
isSelect: false |
|||
}, { |
|||
name: '眩光', |
|||
isSelect: false |
|||
}, { |
|||
name: '视力不佳', |
|||
isSelect: false |
|||
}, { |
|||
name: '其他', |
|||
isSelect: false |
|||
} |
|||
], |
|||
projectList: [ |
|||
{ |
|||
name: '视力', |
|||
os: '', |
|||
od: '' |
|||
}, { |
|||
name: '眼压', |
|||
os: '', |
|||
od: '' |
|||
}, { |
|||
name: '角膜地形图', |
|||
os: '', |
|||
od: '' |
|||
}, { |
|||
name: '眼轴', |
|||
os: '', |
|||
od: '' |
|||
}, { |
|||
name: '眼表', |
|||
os: '', |
|||
od: '', |
|||
areaList: [ |
|||
{ |
|||
name: '角膜', |
|||
os: '', |
|||
od: '' |
|||
}, { |
|||
name: '结膜', |
|||
os: '', |
|||
od: '' |
|||
}, { |
|||
name: '其他', |
|||
os: '', |
|||
od: '' |
|||
} |
|||
] |
|||
}, { |
|||
name: '镜片', |
|||
os: '', |
|||
od: '', |
|||
osList: [ |
|||
{ |
|||
name: '正常', |
|||
isSelect: false |
|||
}, { |
|||
name: '划痕', |
|||
isSelect: false |
|||
}, { |
|||
name: '污染', |
|||
isSelect: false |
|||
}, { |
|||
name: '破损', |
|||
isSelect: false |
|||
} |
|||
], |
|||
odList: [ |
|||
{ |
|||
name: '正常', |
|||
isSelect: false |
|||
}, { |
|||
name: '划痕', |
|||
isSelect: false |
|||
}, { |
|||
name: '污染', |
|||
isSelect: false |
|||
}, { |
|||
name: '破损', |
|||
isSelect: false |
|||
} |
|||
] |
|||
} |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
input{ |
|||
-webkit-appearance: checkbox !important; |
|||
margin-right: 5px; |
|||
} |
|||
.cornealTable{ |
|||
width: 100%; |
|||
tr td{ |
|||
border: 1px solid #ccc; |
|||
padding: 0 5px; |
|||
::v-deep .el-input__inner { |
|||
border: none !important; |
|||
text-align: center; |
|||
border-radius: 0; |
|||
padding: 0; |
|||
} |
|||
.tdItem{ |
|||
display: flex !important; |
|||
align-items: center; |
|||
} |
|||
.checkItem{ |
|||
cursor: pointer; |
|||
user-select: none; |
|||
word-break: keep-all; |
|||
margin-right: 20px; |
|||
} |
|||
} |
|||
} |
|||
.notice-content{ |
|||
width: 100%; |
|||
flex:1; |
|||
|
|||
.notice-box{ |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
|
|||
.notice_tip{ |
|||
width: 100%; |
|||
height: fit-content; |
|||
border: 1px solid #000; |
|||
padding: 64px 32px; |
|||
margin-right: 16px; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,331 @@ |
|||
<template> |
|||
<div class="review"> |
|||
<!-- 复查头部 --> |
|||
<div class="review-head"> |
|||
<span>复查情况</span> |
|||
<el-button type="primary" size="small" icon="el-icon-plus" @click="addHandle()">新增</el-button> |
|||
</div> |
|||
<!-- 复查内容 --> |
|||
<div class="review-content"> |
|||
<el-table |
|||
:data="reviewList" |
|||
style="width: 100%" |
|||
> |
|||
<el-table-column |
|||
type="index" |
|||
width="50" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
prop="returnVisitDate" |
|||
label="日期" |
|||
width="150" |
|||
align="center" |
|||
/> |
|||
<el-table-column label="裸眼视力" align="center"> |
|||
<el-table-column |
|||
prop="odVision" |
|||
label="R" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
prop="osVision" |
|||
label="L" |
|||
align="center" |
|||
/> |
|||
</el-table-column> |
|||
<el-table-column label="戴镜视力" align="center"> |
|||
<el-table-column |
|||
prop="odGlassVision" |
|||
label="R" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
prop="osGlassVision" |
|||
label="L" |
|||
align="center" |
|||
/> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="cornealInfo" |
|||
label="角膜情况" |
|||
align="center" |
|||
> |
|||
<el-table-column |
|||
prop="odCornealInfo" |
|||
label="R" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
prop="osCornealInfo" |
|||
label="L" |
|||
align="center" |
|||
/> |
|||
</el-table-column> |
|||
<el-table-column |
|||
prop="glassInfo" |
|||
label="镜片情况" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
prop="doctorAdvice" |
|||
label="医嘱" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
prop="doctorName" |
|||
label="医生" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
label="操作" |
|||
width="120" |
|||
align="center" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<el-button type="text" size="small" @click="editHandle(scope.row)">修改</el-button> |
|||
<el-button type="text" size="small" @click="delHandle(scope.row)">删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
<!-- 新增弹框--> |
|||
<el-dialog |
|||
class="oklens-add-order" |
|||
:visible.sync="visible" |
|||
width="30%" |
|||
:title="title" |
|||
> |
|||
<el-form ref="dataForms" :model="dataForm" :rules="dataRule"> |
|||
<el-form-item label="复查日期:" label-width="95px" prop="returnVisitDate"> |
|||
<el-date-picker v-model="dataForm.returnVisitDate" type="date" :disabled="title === '编辑复查情况记录'" placeholder="请选择复查日期" value-format="yyyy-MM-dd" @change="changeDate" /> |
|||
</el-form-item> |
|||
<el-form-item label="裸眼视力:" label-width="90px" prop="osVision"> |
|||
<span class="vision">R</span> |
|||
<el-input v-model="dataForm.odVision" style="display: inline-block;width: 100px;margin-right: 16px" placeholder="右眼" /> |
|||
<span class="vision">L</span> |
|||
<el-input v-model="dataForm.osVision" style="display: inline-block;width: 100px" placeholder="左眼" /> |
|||
</el-form-item> |
|||
<el-form-item label="戴镜视力:" label-width="90px" prop="osGlassVision"> |
|||
<span class="vision">R</span> |
|||
<el-input v-model="dataForm.odGlassVision" style="display: inline-block;width: 100px;margin-right: 16px" placeholder="右眼" /> |
|||
<span class="vision">L</span> |
|||
<el-input v-model="dataForm.osGlassVision" style="display: inline-block;width: 100px;" placeholder="左眼" /> |
|||
</el-form-item> |
|||
<el-form-item label="角膜情况:" label-width="90px" prop="odCornealInfo"> |
|||
<span class="vision">R</span> |
|||
<el-input v-model="dataForm.odCornealInfo" style="display: inline-block;width: 250px" placeholder="请填写右眼角膜情况" /> |
|||
</el-form-item> |
|||
<el-form-item label="角膜情况:" label-width="90px" prop="osCornealInfo"> |
|||
<span class="vision">L</span> |
|||
<el-input v-model="dataForm.osCornealInfo" style="display: inline-block;width: 250px" placeholder="请填写左眼角膜情况" /> |
|||
</el-form-item> |
|||
<el-form-item label="镜片情况:" label-width="90px" prop="glassInfo"> |
|||
<el-input v-model="dataForm.glassInfo" placeholder="请填写镜片情况" /> |
|||
</el-form-item> |
|||
<el-form-item label="医嘱:" label-width="90px" prop="doctorAdvice"> |
|||
<el-input v-model="dataForm.doctorAdvice" placeholder="请填写医嘱" /> |
|||
</el-form-item> |
|||
<el-form-item label="医生:" label-width="90px" prop="doctorName"> |
|||
<el-input v-model="dataForm.doctorName" placeholder="请填写医生" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'ReviewSituation', |
|||
props: { |
|||
patientId: { |
|||
type: String, |
|||
default: '' |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
delFlag: false, |
|||
title: '新增复查情况记录', |
|||
returnDate: '', |
|||
dataForm: { |
|||
returnVisitDate: '', |
|||
osGlassVision: '', |
|||
odGlassVision: '', |
|||
osVision: '', |
|||
odVision: '', |
|||
odCornealInfo: '', |
|||
osCornealInfo: '', |
|||
glassInfo: '', |
|||
doctorAdvice: '', |
|||
doctorName: '', |
|||
patientId: this.patientId |
|||
}, |
|||
reviewList: [] |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
returnVisitDate: [ |
|||
{ required: true, message: '请选择复查日期', trigger: 'change' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.getReviewList() |
|||
}, |
|||
methods: { |
|||
// 新增 |
|||
addHandle() { |
|||
this.visible = true |
|||
this.title = '新增复查情况记录' |
|||
this.returnDate = this.getNowFormatDate() |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForms'].resetFields() |
|||
this.dataForm.odGlassVision = '' |
|||
this.dataForm.odVision = '' |
|||
this.dataForm.returnVisitDate = this.returnDate |
|||
// this.getVisitForHis() |
|||
}) |
|||
}, |
|||
// 获取当前时间 yyyy-MM-dd |
|||
getNowFormatDate() { |
|||
const date = new Date() |
|||
const seperator = '-' |
|||
let month = date.getMonth() + 1 |
|||
let strDate = date.getDate() |
|||
if (month >= 1 && month <= 9) { |
|||
month = '0' + month |
|||
} |
|||
if (strDate >= 0 && strDate <= 9) { |
|||
strDate = '0' + strDate |
|||
} |
|||
const currentdate = date.getFullYear() + seperator + month + seperator + strDate |
|||
return currentdate |
|||
}, |
|||
changeDate(val) { |
|||
this.returnDate = val |
|||
this.getVisitForHis() |
|||
}, |
|||
|
|||
getVisitForHis() { |
|||
this.$http.get('/return/visit/save', { params: { patientId: this.patientId, returnVisitDate: this.returnDate }}).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
if (res.data) { |
|||
this.$nextTick(() => { |
|||
this.dataForm = { ...res.data } |
|||
this.dataForm.patientId = this.patientId |
|||
}) |
|||
} else { |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForms'].resetFields() |
|||
this.dataForm.odGlassVision = '' |
|||
this.dataForm.odVision = '' |
|||
this.dataForm.returnVisitDate = this.returnDate |
|||
}) |
|||
} |
|||
}).catch(() => {}) |
|||
}, |
|||
// 编辑 |
|||
editHandle(row) { |
|||
this.visible = true |
|||
this.title = '编辑复查情况记录' |
|||
this.$nextTick(() => { |
|||
this.dataForm = { ...row } |
|||
this.dataForm.id = row.id |
|||
this.dataForm.patientId = this.patientId |
|||
// this.dataForm.patientId = this.patientId |
|||
}) |
|||
}, |
|||
// 保存 |
|||
dataFormSubmitHandle() { |
|||
this.dataForm.patientId = this.patientId |
|||
this.$refs.dataForms.validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
const url = this.title === '新增复查情况记录' ? '/return/visit/save' : '/return/visit/update' |
|||
this.$http.post(url, this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.getReviewList() |
|||
} |
|||
}) |
|||
}).catch(() => {}) |
|||
}) |
|||
}, |
|||
// 删除 |
|||
delHandle(row) { |
|||
const ids = [] |
|||
ids.push(row.id) |
|||
this.$confirm('确认删除该条信息么?') |
|||
.then(_ => { |
|||
this.$http.post('/return/visit/delete', ids).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.getReviewList() |
|||
}).catch(() => {}) |
|||
}) |
|||
.catch(_ => {}) |
|||
}, |
|||
// 复查 |
|||
getReviewList() { |
|||
this.$http.get('/return/visit/getList', { params: { patientId: this.patientId }}).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
if (res.data) { |
|||
this.reviewList = res.data || [] |
|||
} |
|||
}).catch(() => {}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.review { |
|||
width: 100%; |
|||
.review-head { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
padding-bottom: 16px; |
|||
} |
|||
.review-content { |
|||
width: 100%; |
|||
height: calc( 100vh - 50px - 32px - 42px - 48px - 15px); |
|||
padding: 16px; |
|||
background: #ffffff; |
|||
overflow-x: auto; |
|||
} |
|||
.vision{ |
|||
display: inline-block; |
|||
width: 24px; |
|||
height: 24px; |
|||
line-height: 24px; |
|||
border-radius: 50%; |
|||
text-align: center; |
|||
color: #1E79FF; |
|||
font-weight: 600; |
|||
margin-right: 8px; |
|||
background-color: #EBF6FF; |
|||
} |
|||
} |
|||
</style> |
Loading…
Reference in new issue