Browse Source

peter

master
pengqiang 2 years ago
parent
commit
ff10208542
  1. 3
      src/components/360View/commonForm/optometryForm.vue
  2. 4
      src/components/360View/index.vue
  3. 4
      src/components/360View/special/index.vue
  4. 8
      src/page-subspecialty/router/index.js
  5. 42
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/first-visit/index.vue
  6. 209
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/firstForm.vue
  7. 5
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/index.vue
  8. 13
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/index.vue
  9. 30
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/notice-book.vue
  10. 200
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/noticeForm.vue
  11. 25
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/rgp-book.vue
  12. 200
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/rgpForm.vue
  13. 564
      src/page-subspecialty/views/modules/optometryManagement/seeDoctor/notice-book.vue
  14. 4
      src/page-subspecialty/views/modules/systemManagement/team/team-add-or-update.vue
  15. 7
      src/page-subspecialty/views/pages/login.vue

3
src/components/360View/commonForm/optometryForm.vue

@ -604,7 +604,7 @@ export default {
const userData = JSON.parse(window.sessionStorage.getItem('qg-userData'))
const date = this.$moment().format('YYYY-MM-DD')
const mzName = window.sessionStorage.getItem('mzDoctorName')
this.dataForm.tongk = '正常瞳孔'
// this.dataForm.tongk = ''
this.dataForm.jianchaFangfa = '综合'
this.dataForm.ygsSign = userData.signImgBase
this.dataForm.ysSign = mzName
@ -833,6 +833,7 @@ export default {
this.handleSaveTable()
},
handleSaveTable() {
if (!this.dataForm.tongk) return this.$message.warning('请选择瞳孔状态!')
this.dataForm.pjyjCheck = this.handleCheck(this.suggest)
this.dataForm.zzcfCheck = this.handleCheck(this.remoteUse)
this.$http.post('/ygbgd/saveYgbgd', this.dataForm).then(({ data: res }) => {

4
src/components/360View/index.vue

@ -425,8 +425,8 @@ export default {
// 360
handlePacs() {
// const baseUrl = 'http://z1.huimucloud.com:8085'
// const baseUrl = 'http://10.80.5.32:8026'
const baseUrl = 'http://192.168.0.85:8001'
const baseUrl = 'http://10.80.5.32:8026'
// const baseUrl = 'http://192.168.0.85:8001'
const href = `${baseUrl}/EXAMINE_Report/InterFace?PatID=${this.patientId}&DoctorID=${this.employeeId}&PatIdKey=&ExamNo=`
window.open(href, '_blank')
// const { href } = this.$router.resolve({

4
src/components/360View/special/index.vue

@ -217,8 +217,8 @@ export default {
// }
// })
// const baseUrl = 'http://z1.huimucloud.com:8085'
// const baseUrl = 'http://10.80.5.32:8026'
const baseUrl = 'http://192.168.0.85:8001'
const baseUrl = 'http://10.80.5.32:8026'
// const baseUrl = 'http://192.168.0.85:8001'
const href = `${baseUrl}/EXAMINE_Report/InterFace?PatID=${this.patientId}&DoctorID=${this.employeeId}&PatIdKey=&ExamNo=`
window.open(href, '_blank')
},

8
src/page-subspecialty/router/index.js

@ -238,7 +238,7 @@ function loginByDocId(doctorId, next, to) {
}
http.post('/loginByDid', params).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return Vue.prototype.$message.error(res.msg)
}
window.sessionStorage.setItem('xa-token', res.data.token)
window.sessionStorage.setItem('qg-userData', JSON.stringify(res.data.currentUser))
@ -251,11 +251,13 @@ function loginByDocId(doctorId, next, to) {
}
function loginByUserId(userIdNumber, next, to) {
const params = {
userIdNumber: userIdNumber.slice(2)
userIdNumber: userIdNumber
}
http.post('/loginByPidNum', params).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
console.log(123)
Vue.prototype.$message.error(res.msg)
return next({ name: 'login' })
}
window.sessionStorage.setItem('xa-token', res.data.token)
window.sessionStorage.setItem('qg-userData', JSON.stringify(res.data.currentUser))

42
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/first-visit/index.vue

@ -667,11 +667,20 @@ export default {
headTemplate
},
props: {
id: {
type: String,
default: ''
},
patientId: {
type: String,
default: ''
}
},
watch: {
id(val) {
this.queryFirstVisit()
}
},
data() {
return {
options1: [
@ -838,34 +847,33 @@ export default {
methods: {
async queryFirstVisit() {
const params = {
patientId: this.patientId
id: this.id
}
const { data: res } = await this.$http.get('/hospital/notice/getFirstDiagnosis', {
const { data: res } = await this.$http.get('/hospital/notice/getFirstDiagnosisById', {
params: params
})
if (res.code === 0) {
this.formData = res.data
if (!this.formData.id) {
await this.queryFirstInfo()
if (this.formData.isChange === 0) {
await this.getPatientData()
}
} else {
this.$message.error(res.msg)
}
},
async queryFirstInfo() {
const params = {
patientId: this.patientId
}
const { data: res } = await this.$http.get('/hospital/notice/getFirstDiagnosisInfos', {
params: params
})
if (res.code === 0) {
this.formData = res.data
} else {
this.$message.error(res.msg)
}
},
// async queryFirstInfo() {
// const params = {
// patientId: this.patientId
// }
// const { data: res } = await this.$http.get('/hospital/notice/getFirstDiagnosisInfos', {
// params: params
// })
// if (res.code === 0) {
// this.formData = res.data
// } else {
// this.$message.error(res.msg)
// }
// },
//
async getPatientData() {
const { data: res } = await this.$http.get(

209
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/firstForm.vue

@ -0,0 +1,209 @@
<template>
<div class="reviewContain">
<div class="reviewLeft">
<div class="content-top">
<div v-for="(item, index) in formList" :key="index" class="formBox" :class="[index === curIndex ? 'active' : '']" @click="handleForm(index, item)">
<div style="display: flex;padding: 2px 0">
<p :class="[index === curIndex ? 'activeFont' : 'curFont']">{{ item.createDate }}</p>
<i v-if="index === curIndex" style="margin-top: 5px;color: rgb(199,5,5);margin-left: 12px" class="el-icon-delete" @click="deleteForm(item.id)" />
</div>
</div>
<img v-if="!formList.length" src="@/assets/img/nodata.png" alt="" class="nodata">
</div>
<div class="content-bottom">
<div class="commonForm-text">
<span>常用表单</span>
<span class="line" />
<!-- <el-checkbox v-model="defaultChecked">默认新建今日</el-checkbox>-->
</div>
<div class="record">
<p>首诊单</p>
<img :src="require('@/assets/img/add.png')" alt="" @click="addRecord()">
</div>
</div>
</div>
<div class="reviewRight">
<firstVisit v-if="formList.length" :patient-id="patientId" :id="id"></firstVisit>
<!-- <corneal-review v-if="formList.length" :case-id="caseId" :patient-id="patientId" />-->
</div>
<!-- <el-tabs v-model="activeName">-->
<!-- <el-tab-pane label="复查情况" name="first">-->
<!--&lt;!&ndash; <review-situation :patient-id="patientId" />&ndash;&gt;-->
<!-- </el-tab-pane>-->
<!-- <el-tab-pane label="角膜塑形镜复查单" name="second">-->
<!-- <corneal-review :patient-id="patientId" />-->
<!-- </el-tab-pane>-->
<!-- </el-tabs>-->
</div>
</template>
<script>
import ReviewSituation from '@/page-subspecialty/views/modules/optometryManagement/seeDoctor/reviewSituation.vue'
import CornealReview from '@/page-subspecialty/views/modules/optometryManagement/seeDoctor/CornealReview.vue'
import firstVisit from '@/page-subspecialty/views/modules/optometryManagement/seeDoctor/first-visit/index'
export default {
components: { CornealReview, ReviewSituation, firstVisit },
props: {
patientId: {
type: String,
default: ''
}
},
data() {
return {
activeName: 'first',
id: '',
curIndex: 0,
formList: []
}
},
mounted() {
this.getFormList()
},
methods: {
async getFormList() {
const { data: res } = await this.$http.get('/hospital/notice/getFirstDiagnosis', {
params: {
patientId: this.patientId
}
})
if (res.code === 0) {
this.formList = res.data || []
if (this.formList.length) {
this.id = this.formList[0].id
}
} else {
this.$message.error(res.msg)
}
},
handleForm(index, item) {
this.curIndex = index
this.id = item.id
},
async addRecord() {
const params = {
patientId: this.patientId
}
const { data: res } = await this.$http.post('/hospital/notice/saveOrUpdateFirstDiagnosis', params)
if (res.code === 0) {
await this.getFormList()
this.$message.success('新增成功')
} else {
this.$message.error(res.msg)
}
},
deleteForm(id) {
const params = {
id: id
}
this.$confirmFun('你确定要删除吗?').then(async() => {
const { data: res } = await this.$http.post('/hospital/notice/delFirstDiagnosisById', params)
if (res.code === 0) {
this.$message.success('删除成功')
await this.getFormList()
} else {
this.$message.error(res.msg)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.reviewContain {
width: 100%;
height: 100%;
display: flex;
.reviewLeft{
width: 200px;
height: 100%;
margin-right: 16px;
.content-top, .content-bottom{
height: 50%;
overflow-y: auto;
}
.content-bottom {
.commonForm-text {
display: flex;
align-items: center;
font-size: 14px;
font-weight: 700;
}
.line {
border-bottom: 1px solid #e5e6eb;
flex: 1;
display: inline-block;
margin: 0 10px;
}
.record{
display: flex;
justify-content: space-between;
padding-top: 12px;
cursor: pointer;
p {
display: inline-block;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
letter-spacing: 1px;
}
img {
width: 16px;
height: 16px;
margin-top: 3px;
}
}
}
.formBox{
display: flex;
justify-content: space-between;
cursor: pointer;
padding: 2px 8px;
border-radius: 2px;
margin-top: 12px;
}
.active {
color: white;
background-color: #1C76FD;
}
.curFont {
color: #A6A4A4;
}
.activeFont {
color: #D9D9D9;
}
.nodata {
width: 200px;
margin-top: 50px;
}
}
.reviewRight{
flex: 1;
//background-color: #ececf1;
}
.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>

5
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/index.vue

@ -25,7 +25,8 @@
<notice-book v-if="activeName==='noticeBook'" :patient-id="patientId" />
</el-tab-pane>
<el-tab-pane label="首诊单" name="firstVisit">
<first-visit v-if="activeName==='firstVisit'" :patient-id="patientId" />
<firstForm v-if="activeName==='firstVisit'" :patient-id="patientId"></firstForm>
<!-- <first-visit v-if="activeName==='firstVisit'" :patient-id="patientId" />-->
</el-tab-pane>
<el-tab-pane label="OK镜" name="okLens">
<ok-lens-rgp v-if="activeName==='okLens'" ref="okLensRgp" :patient-id="patientId" :doctor-list="doctorList" tab-title="okLens" />
@ -54,6 +55,7 @@
</template>
<script>
import firstVisit from './first-visit/index.vue' //
import firstForm from './firstForm.vue' //
import noticeBook from './informBook' //
import review from './review.vue' //
import historyFile from './historyRecord.vue' //
@ -69,6 +71,7 @@ export default {
okLensRgp,
noticeBook,
review,
firstForm,
historyFile
},

13
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/index.vue

@ -2,22 +2,23 @@
<div class="notice-book">
<el-tabs v-model="activeName" @tab-click="tabClick">
<el-tab-pane label="角膜塑形镜" name="first">
<notice-book :patient-id="patientId" v-if="activeName ==='first'"/>
<notice-form :patient-id="patientId" v-if="activeName ==='first'"/>
<!-- <notice-book :patient-id="patientId" v-if="activeName ==='first'"/>-->
</el-tab-pane>
<el-tab-pane label="RGP 知情同意书" name="second">
<rgpBook :patient-id="patientId" v-if="activeName ==='second'"></rgpBook>
<rgpForm :patient-id="patientId" v-if="activeName ==='second'"></rgpForm>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import noticeBook from './notice-book' //
import rgpBook from './rgp-book'
import noticeForm from './noticeForm' //
import rgpForm from './rgpForm' //
export default {
components: {
noticeBook,
rgpBook
noticeForm,
rgpForm
},
props: {
patientId: {

30
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/notice-book.vue

@ -1,3 +1,4 @@
<script src="../../../../../../../../../Users/peter/Desktop/xiangan_pc/vue.config.js"></script>
<template>
<div class="notice-book">
<!-- 告知书头部 -->
@ -94,9 +95,10 @@
<span style="margin-left: 16px">日期</span>
<el-date-picker
v-model="doctorSignDate"
style="width: 160px;padding-left: 0"
style="width: 220px;padding-left: 0"
size="small"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
/>
</div>
@ -116,9 +118,10 @@
<span style="margin-left: 16px">日期</span>
<el-date-picker
v-model="wearerOrGuardianSignDate"
style="width: 160px"
style="width: 220px"
size="small"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
/>
</div>
@ -140,6 +143,10 @@ export default {
},
mixins: [styeFormSign],
props: {
id: {
type: String,
default: ''
},
patientId: {
type: String,
default: ''
@ -164,10 +171,15 @@ export default {
}
}
},
watch: {
id(val) {
this.getNoticeName()
}
},
mounted() {
this.getNoticeName()
this.doctorSignDate = this.$moment().format('YYYY-MM-DD')
this.wearerOrGuardianSignDate = this.$moment().format('YYYY-MM-DD')
// this.doctorSignDate = this.$moment().format('YYYY-MM-DD')
// this.wearerOrGuardianSignDate = this.$moment().format('YYYY-MM-DD')
},
methods: {
signClick(text) {
@ -179,16 +191,15 @@ export default {
//
getNoticeName() {
const params = {
patientId: this.patientId,
noticeType: 1
id: this.id
}
this.$http.get('/hospital/notice/getNoticeSign', { params: params }).then(({ data: res }) => {
this.$http.get('/hospital/notice/getNoticeSignById', { params: params }).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
if (res.data) {
this.doctorSignDate = res.data.doctorSignDate
this.wearerOrGuardianSignDate = res.data.wearerOrGuardianSignDate
this.doctorSignDate = res.data.doctorSignDate ? res.data.doctorSignDate : this.$moment().format('YYYY-MM-DD')
this.wearerOrGuardianSignDate = res.data.wearerOrGuardianSignDate ? res.data.wearerOrGuardianSignDate : this.$moment().format('YYYY-MM-DD')
this.formListValue.guardianSign2 = res.data.guardianSign
this.formListValue.patientSign2 = res.data.patientSign
this.formListValue.doctorSign2 = res.data.doctorSign
@ -212,6 +223,7 @@ export default {
}
const params = {
noticeType: 1,
id: this.id,
patientId: this.patientId,
doctorSign: this.formListValue.doctorSign2,
guardianSign: this.formListValue.guardianSign2,

200
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/noticeForm.vue

@ -0,0 +1,200 @@
<template>
<div class="reviewContain">
<div class="reviewLeft">
<div class="content-top">
<div v-for="(item, index) in formList" :key="index" class="formBox" :class="[index === curIndex ? 'active' : '']" @click="handleForm(index, item)">
<div style="display: flex;padding: 2px 0">
<p :class="[index === curIndex ? 'activeFont' : 'curFont']">{{ item.createDate }}</p>
<i v-if="index === curIndex" style="margin-top: 5px;color: rgb(199,5,5);margin-left: 12px" class="el-icon-delete" @click="deleteForm(item.id)" />
</div>
</div>
<img v-if="!formList.length" src="@/assets/img/nodata.png" alt="" class="nodata">
</div>
<div class="content-bottom">
<div class="commonForm-text">
<span>常用表单</span>
<span class="line" />
<!-- <el-checkbox v-model="defaultChecked">默认新建今日</el-checkbox>-->
</div>
<div class="record">
<p>角膜塑形镜</p>
<img :src="require('@/assets/img/add.png')" alt="" @click="addRecord()">
</div>
</div>
</div>
<div class="reviewRight">
<noticeBook v-if="formList.length" :patient-id="patientId" :id="id"></noticeBook>
</div>
</div>
</template>
<script>
import noticeBook from './notice-book' //
export default {
components: { noticeBook },
props: {
patientId: {
type: String,
default: ''
}
},
data() {
return {
activeName: 'first',
id: '',
curIndex: 0,
formList: []
}
},
mounted() {
this.getFormList()
},
methods: {
async getFormList() {
const { data: res } = await this.$http.get('/hospital/notice/getNoticeSign', {
params: {
noticeType: 1,
patientId: this.patientId
}
})
if (res.code === 0) {
this.formList = res.data || []
if (this.formList.length) {
this.id = this.formList[0].id
}
} else {
this.$message.error(res.msg)
}
},
handleForm(index, item) {
this.curIndex = index
this.id = item.id
},
async addRecord() {
const params = {
patientId: this.patientId,
noticeType: 1
}
const { data: res } = await this.$http.post('/hospital/notice/saveOrUpdateNoticeSign', params)
if (res.code === 0) {
await this.getFormList()
this.$message.success('新增成功')
} else {
this.$message.error(res.msg)
}
},
deleteForm(id) {
const params = {
id: id
}
this.$confirmFun('你确定要删除吗?').then(async() => {
const { data: res } = await this.$http.post('/hospital/notice/delNoticeSignById', params)
if (res.code === 0) {
this.$message.success('删除成功')
await this.getFormList()
} else {
this.$message.error(res.msg)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.reviewContain {
width: 100%;
height: 100%;
display: flex;
.reviewLeft{
width: 200px;
height: 100%;
margin-right: 16px;
.content-top, .content-bottom{
height: 50%;
overflow-y: auto;
}
.content-bottom {
.commonForm-text {
display: flex;
align-items: center;
font-size: 14px;
font-weight: 700;
}
.line {
border-bottom: 1px solid #e5e6eb;
flex: 1;
display: inline-block;
margin: 0 10px;
}
.record{
display: flex;
justify-content: space-between;
padding-top: 12px;
cursor: pointer;
p {
display: inline-block;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
letter-spacing: 1px;
}
img {
width: 16px;
height: 16px;
margin-top: 3px;
}
}
}
.formBox{
display: flex;
justify-content: space-between;
cursor: pointer;
padding: 2px 8px;
border-radius: 2px;
margin-top: 12px;
}
.active {
color: white;
background-color: #1C76FD;
}
.curFont {
color: #A6A4A4;
}
.activeFont {
color: #D9D9D9;
}
.nodata {
width: 200px;
margin-top: 50px;
}
}
.reviewRight{
flex: 1;
//background-color: #ececf1;
}
.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>

25
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/rgp-book.vue

@ -82,6 +82,7 @@
<span style="margin-left: 16px">日期</span>
<el-date-picker
v-model="doctorSignDate"
value-format="yyyy-MM-dd"
style="width: 160px"
size="small"
type="date"
@ -104,6 +105,7 @@
<span style="margin-left: 16px">日期</span>
<el-date-picker
v-model="wearerOrGuardianSignDate"
value-format="yyyy-MM-dd"
style="width: 160px"
size="small"
type="date"
@ -128,6 +130,10 @@ export default {
},
mixins: [styeFormSign],
props: {
id: {
type: String,
default: ''
},
patientId: {
type: String,
default: ''
@ -152,12 +158,15 @@ export default {
}
}
},
watch: {
id(val) {
this.getNoticeName()
}
},
created() {
},
mounted() {
this.getNoticeName()
this.doctorSignDate = this.$moment().format('YYYY-MM-DD')
this.wearerOrGuardianSignDate = this.$moment().format('YYYY-MM-DD')
},
methods: {
signClick(text) {
@ -166,19 +175,18 @@ export default {
handlePrint() {
this.printHidden = false
},
//
//
getNoticeName() {
const params = {
noticeType: 2,
patientId: this.patientId
id: this.id
}
this.$http.get('/hospital/notice/getNoticeSign', { params: params }).then(({ data: res }) => {
this.$http.get('/hospital/notice/getNoticeSignById', { params: params }).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
if (res.data) {
this.doctorSignDate = res.data.doctorSignDate
this.wearerOrGuardianSignDate = res.data.wearerOrGuardianSignDate
this.doctorSignDate = res.data.doctorSignDate ? res.data.doctorSignDate : this.$moment().format('YYYY-MM-DD')
this.wearerOrGuardianSignDate = res.data.wearerOrGuardianSignDate ? res.data.wearerOrGuardianSignDate : this.$moment().format('YYYY-MM-DD')
this.formListValue.optomSign = res.data.ygsSign
this.formListValue.doctorSign = res.data.doctorSign
this.formListValue.patientSign = res.data.patientSign
@ -202,6 +210,7 @@ export default {
}
const params = {
noticeType: 2,
id: this.id,
patientId: this.patientId,
doctorSign: this.formListValue.doctorSign,
guardianSign: this.formListValue.guardianSign,

200
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/informBook/rgpForm.vue

@ -0,0 +1,200 @@
<template>
<div class="reviewContain">
<div class="reviewLeft">
<div class="content-top">
<div v-for="(item, index) in formList" :key="index" class="formBox" :class="[index === curIndex ? 'active' : '']" @click="handleForm(index, item)">
<div style="display: flex;padding: 2px 0">
<p :class="[index === curIndex ? 'activeFont' : 'curFont']">{{ item.createDate }}</p>
<i v-if="index === curIndex" style="margin-top: 5px;color: rgb(199,5,5);margin-left: 12px" class="el-icon-delete" @click="deleteForm(item.id)" />
</div>
</div>
<img v-if="!formList.length" src="@/assets/img/nodata.png" alt="" class="nodata">
</div>
<div class="content-bottom">
<div class="commonForm-text">
<span>常用表单</span>
<span class="line" />
<!-- <el-checkbox v-model="defaultChecked">默认新建今日</el-checkbox>-->
</div>
<div class="record">
<p>RGP 知情同意书</p>
<img :src="require('@/assets/img/add.png')" alt="" @click="addRecord()">
</div>
</div>
</div>
<div class="reviewRight">
<rgpBook v-if="formList.length" :patient-id="patientId" :id="id"></rgpBook>
</div>
</div>
</template>
<script>
import rgpBook from './rgp-book'
export default {
components: { rgpBook },
props: {
patientId: {
type: String,
default: ''
}
},
data() {
return {
activeName: 'first',
id: '',
curIndex: 0,
formList: []
}
},
mounted() {
this.getFormList()
},
methods: {
async getFormList() {
const { data: res } = await this.$http.get('/hospital/notice/getNoticeSign', {
params: {
noticeType: 2,
patientId: this.patientId
}
})
if (res.code === 0) {
this.formList = res.data || []
if (this.formList.length) {
this.id = this.formList[0].id
}
} else {
this.$message.error(res.msg)
}
},
handleForm(index, item) {
this.curIndex = index
this.id = item.id
},
async addRecord() {
const params = {
patientId: this.patientId,
noticeType: 2
}
const { data: res } = await this.$http.post('/hospital/notice/saveOrUpdateNoticeSign', params)
if (res.code === 0) {
await this.getFormList()
this.$message.success('新增成功')
} else {
this.$message.error(res.msg)
}
},
deleteForm(id) {
const params = {
id: id
}
this.$confirmFun('你确定要删除吗?').then(async() => {
const { data: res } = await this.$http.post('/hospital/notice/delNoticeSignById', params)
if (res.code === 0) {
this.$message.success('删除成功')
await this.getFormList()
} else {
this.$message.error(res.msg)
}
})
}
}
}
</script>
<style lang="scss" scoped>
.reviewContain {
width: 100%;
height: 100%;
display: flex;
.reviewLeft{
width: 200px;
height: 100%;
margin-right: 16px;
.content-top, .content-bottom{
height: 50%;
overflow-y: auto;
}
.content-bottom {
.commonForm-text {
display: flex;
align-items: center;
font-size: 14px;
font-weight: 700;
}
.line {
border-bottom: 1px solid #e5e6eb;
flex: 1;
display: inline-block;
margin: 0 10px;
}
.record{
display: flex;
justify-content: space-between;
padding-top: 12px;
cursor: pointer;
p {
display: inline-block;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
letter-spacing: 1px;
}
img {
width: 16px;
height: 16px;
margin-top: 3px;
}
}
}
.formBox{
display: flex;
justify-content: space-between;
cursor: pointer;
padding: 2px 8px;
border-radius: 2px;
margin-top: 12px;
}
.active {
color: white;
background-color: #1C76FD;
}
.curFont {
color: #A6A4A4;
}
.activeFont {
color: #D9D9D9;
}
.nodata {
width: 200px;
margin-top: 50px;
}
}
.reviewRight{
flex: 1;
//background-color: #ececf1;
}
.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>

564
src/page-subspecialty/views/modules/optometryManagement/seeDoctor/notice-book.vue

@ -1,564 +0,0 @@
<template>
<div class="notice-book">
<!-- 告知书头部 -->
<head-template head-left="患者告知书 ">
<el-button type="primary" size="small" @click="saveEditNotice()">保存</el-button>
<el-button v-print="'#noticePrint'" size="small">打印</el-button>
</head-template>
<div id="noticePrint" class="notice-content">
<div v-if="isNew === 3" class="notice-box">
<div id="notice-three" class="notice_tip" style="page-break-after:always">
<h3 style="text-align: center;margin-bottom: 32px;">
角膜塑形镜配戴告知书
<p style="font-size: 13px">此页告知书一式两份一份存档一份给患者</p>
</h3>
<p style="color: red">角膜塑形镜OK镜一夜戴型高透氧性硬性隐形眼镜属于易碎品</p>
<p style="font-weight: bold">角膜塑形镜的适应症</p>
<p>年龄8周岁以上近视量可矫正范围在-0.25DS~-6.00DS以低于-4.00DS为理想矫治范围</p>
<p>角膜散光小于1.50D顺规性散光者相对合适</p>
<p>角膜曲率在40.00~46.00D角膜曲率过平<40.0或过陡>46.0效果可能不理想需有经验医师酌情考虑处方</p>
<p>
1.验配单位所提供产品为国家食品药品监督管理局注册登记的合格产品
</p>
<p>
2.验配单位负责近视矫正过程中的配戴眼数据采集分析镜片订制戴镜后跟踪评估及疑难咨询等工作
</p>
<p>
3.验配单位保证以高度责任心尽力达到最优近视矫治效果但由于个体差异及其他多种因素的影响验配单位无法对角膜塑形镜的效果做出任何保证性承诺
</p>
<p>
4.OK镜属于隐形眼镜它与其它隐形眼镜一样存在各种感染的可能如遇严重感染可能会影响眼睛健康必须规范使用按时随访
</p>
<p>
5.OK镜对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视
</p>
<p>
6.<span style="color: red">关于0K镜破碎的优惠条款</span>配戴者需将<span style="color: red">原包装及完整的碎片镜片上要有完整编码</span>交还验配单位后方可享受以下优惠自镜片交付日算起<span style="font-weight: bold">30</span>天内可享受<span style="color: red">免费</span>换片一次<span style="color: red">已享受免费换片的新片如再次破碎无法再免费换片</span><span style="font-weight: bold">31~90天内</span>破碎<span style="color: red">按原价的半价</span>补片如镜片丢失碎片无完整编码粉碎性损坏无法交还原镜片及包装碎片缺少部分大于1/4整片等验配单位不提供免费换片<span style="color: red">患者收到取镜通知30天内未取镜则视为自动放弃该项优惠</span>
</p>
<p>
7.自镜片交付日算起90天内按要求复查的配戴者如果出现适配不理想的情况经验配单位鉴定需调整镜片设计参数重新订片的配戴者无需承担二次配镜的镜片购买费用如经验配单位鉴定无法消除且必须终止矫正的在配戴者退回完好无损的镜片和原包装后双方共同承担损失验配机构返还配戴者镜片费用<span style="font-weight: bold">百分之五十</span>的款项
</p>
<p>
8.配戴者在<span style="color: red">订单已发出或取镜后30天内</span>要求退片的在配戴者交回完好的原镜片及原包装将退还配戴者镜片费用<span style="color: red">百分之五十</span>的款项超过30天一律视为配戴者已主动放弃退片权利验配单位有权不受理退片申请
</p>
<p>
9.体检的配戴者镜片一旦订片概不受理退片
</p>
<p>
10.验配单位对配戴角膜塑形镜的人员进行试戴评估以便评估配戴者是否适合配戴角膜塑形镜但是鉴于个体条件的差异性使用习惯卫生条件以及其他外部环境的影响上述评估效果仅在试戴时确定配戴者是否适合配戴并非确定配戴以后任何时期是否适合配戴的有效依据因此验配单位无法保证正式配戴过程中不出现排异性不适配或其他不良反应
</p><p>
11.镜片常规使用寿命为<span style="color: red">1~1.5</span>夜间常规配戴时间<span style="color: red">7-10小时不超过12小时</span>
</p>
<p>
12.常规复查时间<span style="color: red">复查都要挂号到1楼或2楼眼视光中心</span> 进行复查<span style="color: red">到片取镜时学习摘戴方法不用挂号戴镜后的第1天早上复查起床不摘镜第1周第1个月必须按期复查若无特殊情况以后每3个月至少复查一次</span>严格遵守医嘱按时复查这是保障角膜塑形术疗效及规避相关问题的前提否则验配单位具有免责权利
</p>
<p>
13.配戴初期出现轻微的眼刺激症状或异物感一过性的结膜充血或轻微的视物叠影晨起后分泌物稍增多摘镜后眼睛轻度干涩等均为正常现象随着矫正期的延续会逐渐缓解或消失<span style="color: red">戴镜期间如果感冒发烧或出现持续性眼红眼痛畏光流泪等症状必须先停戴然后及时到医院就诊</span>并遵循医师处理
</p>
<p>
14.为保证矫正的安全有效及镜片的使用寿命须使用和镜片性能相配套的护理产品和附件若擅自使用未经验配单位认可的物品接触镜片导致的意外事件或不良反应由配戴者自行负责
</p>
<p>
15.矫正期间若发现发生与配戴角膜塑形镜无关的眼疾或其他疾病并因此导致终止矫正配戴者应自己承担全部责任
</p>
<div style="margin-top: 30px">
<div style="position: relative">
<span style="margin-right: 8px;vertical-align: middle;">是否已阅读<span style="font-weight: bold">此页告知书</span>并同意配戴<span style="font-weight: bold">角膜塑形镜OK镜</span></span>
<span v-if="isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('1')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin: 0 16px 0 24px;vertical-align: middle"></span>
<span v-if="!isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('2')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin-left: 24px;vertical-align: middle"></span>
</div>
</div>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div @click="signClick(1)">
<span>验光师</span>
<img v-if="optomFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="doctorSign">
</div>
<div>
时间: <span v-if="doctorSignDate" style="padding-top: 8px;display: inline-block">{{ doctorSignDate ? doctorSignDate.substring(0,16) : '' }}</span>
</div>
<div @click="signClick(6)">
<span>配戴者/监护人</span>
<img v-if="wearerOrGuardianFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="wearerOrGuardianSign">
</div>
<div>
时间: <span v-if="doctorSignDate" style="padding-top: 8px;display: inline-block">{{ wearerOrGuardianSignDate ? wearerOrGuardianSignDate.substring(0,16) : '' }}</span>
</div>
</div>
</div>
</div>
<!-- 最老版本-->
<div v-if="isNew === 2" class="notice-box">
<div id="notice-one" class="notice_tip" style="page-break-after:always">
<h3 style="text-align: center;margin-bottom: 32px;">
宁波市眼科医院角膜塑形术双方责任约定
<p style="font-size: 13px">此页责任约定一式两份一份存档一份给患者</p>
</h3>
<p style="color: red">角膜塑形镜OK镜一夜戴型高透氧性硬性隐形眼镜属于易碎品</p>
<p>角膜塑形镜的适应症</p>
<p>年龄8周岁以上近视量可矫正范围在-0.25DS~-6.00DS以低于-4.00DS为理想矫治范围</p>
<p>角膜散光小于1.50D顺规性散光者相对合适</p>
<p>角膜曲率在40.00~46.00D角膜曲率过平<40.0或过陡>46.0效果可能不理想需有经验医师酌情考虑处方</p>
<p>
1.验配单位所提供产品为国家食品药品监督管理局注册登记的合格产品
</p>
<p>
2.验配单位负责近视矫正过程中的配戴眼数据采集分析镜片订制戴镜后跟踪评估镜片检测及疑难咨询等工作
</p>
<p>
3.验配单位保证以高度责任心尽力达到最优近视娇治效果但由于个体差异及其他多种因素的影响验配单位无法对角膜塑形术的效果做出任何保证性承诺
</p>
<p>
4.0K镜属于隐形眼镜它与其它隐形眼镜一样存在各种感染的可能如遇严重感染可能会影响眼睛健康 需严格按照医师的指导规范使用按时随访
</p>
<p>
5.0K镜对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视
</p>
<p>
6.<span style="color: red">关于0K镜破碎的优惠条款</span>配戴者需将原包装及完整的碎片镜片上要有完整编码交还验配单位后方可享受以下优惠自镜片交付日算起30天内可享受<span style="color: red">免费</span>换片一次<span style="color: red">已享受免费换片的新片如再次破碎无法再免费换片</span>31~90天内破碎半价补片如镜片丢失出现粉碎性损坏无法交还原镜片及包装碎片缺少部分大于1/4整片等验配单位不提供免费换片<span style="color: red">患者收到取镜通知30天内未取镜则视为自动放弃该项优惠</span>
</p>
<p>
7.自镜片交付日算起90天内按要求复查的配戴者如果出现适配不理想的情况经验配单位鉴定需调整镜片设计参数重新订片的配戴者无需承担二次配镜的镜片购买费用如经验配单位鉴定无法消除且必须终止矫正的在配戴者退回完好无损的镜片和原包装后双方共同承担损失验配机构返还配戴者镜片费用百分之五十的款项
</p>
<p>
8.除本责任书约定条件外配戴者取镜后30天内要求退片终止矫正的在配戴者交回完好的原德片及原包装将退还配戴者镜片费用百分之五十的款项退款后本责任书自动终止超过30天一律视为配戴者已主动放弃退片权利验配单位有权不受理退片申请
</p>
<p>
9.体检的配戴者镜片一旦订出概不受理退片
</p>
<p>
10.验配单位对配戴角膜塑形镜的人员进行试戴评估以便评估配藏者是否适合配戴角膜塑形镜但是鉴于个体条件的差异性使用习惯卫生条件以及其他外部环境的影响上述评估效果仅在试戴时确定配戴者是否适合配戴并非确定配戴以后任何时期是否适合配戴的有效依据因此验配单位无法保证正式配戴过程中不出现排异性不适配或其他不良反应
</p>
<p>
11.镜片使用寿命为<span style="color: red">1~1.5</span>夜间常规配戴时间<span style="color: red">7-10小时不超过12小时</span>
</p>
<p>
12.常规复查时间<span style="color: red">复查都要挂号到2楼眼视光中心</span> 进行复查<span style="color: red">到片取镜时学习摘藏方法不用挂号戴镜后的第1天早上复查晨起不摘镜第1周第1个月必须按期复查若无特殊情况以后每3个月至少复查一次</span>严格遵守医嘱按时复查这是保障角膜塑形镜疗效及规避相关问题的前提否则验配单位具有免责权利
</p>
<p>
13.配戴初期出现轻微的眼刺激症状或异物感一过性的结膜充血或轻微的视物叠影晨起后分泌物稍增多摘镜后眼睛轻度干涩等均为正常现象随着矫正期的延续会逐渐级解或消失<span style="color: red">戴镜期间如果感冒发烧或出现持续性眼红眼痛畏光流泪等症状必须先停戴然后及时到医院就诊</span>并遵循医师处理
</p>
<p>
14.为保证娇正的安全有效及镜片的使用寿命须使用和镜片性能相配套的护理产品和附件若擅自使用未经验配单位认可的物品接触镜片导致的意外事件或不良反应由配戴者自行负责
</p>
<p>
15.矫正期间若发现发生与配戴角膜塑形镜无关的眼疾或其他疾病并因此导致终止娇正配戴者应自己承担全部责任
</p>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div @click="signClick(1)">
<span>医生/验光师</span>
<img v-if="optomFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="doctorSign">
</div>
<div @click="signClick(2)">
<span>配戴者</span>
<img v-if="wearerFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="patientSign">
</div>
<div @click="signClick(3)">
<span>监护人</span>
<img v-if="guardianFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="guardianSign">
</div>
</div>
</div>
<div id="notice-two" class="notice_tip">
<h3 style="text-align: center;margin-bottom: 32px;">
宁波市眼科医院角膜塑形术配镜用户表暨知情同意书
</h3>
<p style="font-weight: bold">
角膜塑形镜一夜戴型高遁氧性硬性隐形眼镜延缓青少年近视进展
</p>
<p>
近视发生发展的原因是复杂的主要有遗传因素与大最后天环境因素因此青少年近视进展是世界性难题目前仍缺乏完全控制青少年近视进展的有效手段
</p>
<p>
角膜塑形术对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视戴镜后依然要注意用眼卫生习惯多去户外运动因个体差异戴镜后依然会呈现不同程度的近视进展停戴后逐渐呈现原近视程度加上在配戴期间可能已缓慢加深的近视度数
</p>
<p>
最适合对象中低度近视无或伴低度散光的具备一定认知能力与主动性的青少年
</p>
<p>
配戴随访期第1天旱上不摘镜第1周第1月之后每隔3个月清洁护理良好情况下1~1.5年半更换镜片
</p>
<p>
家长要重视监管青少年配戴护理等操作并且严格定期复查
</p>
<p style="margin-top: 32px;">
是否已阅读角膜塑形术双方责任约定,
<span>并同意接受</span>
<span style="font-size: 18px;">角膜塑形镜OK镜</span>
</p>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div style="position: relative">
<span style="margin-right: 8px;vertical-align: middle;">矫治</span>
<span v-if="isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('1')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin: 0 16px 0 24px;vertical-align: middle"></span>
<span v-if="!isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('2')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin-left: 24px;vertical-align: middle"></span>
</div>
<div @click="signClick(4)">
<span style="font-size: 18px;">阅读者</span>
<span>签名</span>
<img v-if="readFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="readerSign">
</div>
</div>
</div>
</div>
<!-- 第二版本-->
<div v-if="isNew === 1" class="notice-box">
<div id="notice-three" class="notice_tip" style="page-break-after:always">
<h3 style="text-align: center;margin-bottom: 32px;">
角膜塑形镜配戴告知书
<p style="font-size: 13px">此页告知书一式两份一份存档一份给患者</p>
</h3>
<p style="color: red">角膜塑形镜OK镜一夜戴型高透氧性硬性隐形眼镜属于易碎品</p>
<p style="font-weight: bold">角膜塑形镜的适应症</p>
<p>年龄8周岁以上近视量可矫正范围在-0.25DS~-6.00DS以低于-4.00DS为理想矫治范围</p>
<p>角膜散光小于1.50D顺规性散光者相对合适</p>
<p>角膜曲率在40.00~46.00D角膜曲率过平<40.0或过陡>46.0效果可能不理想需有经验医师酌情考虑处方</p>
<p>
1.验配单位所提供产品为国家食品药品监督管理局注册登记的合格产品
</p>
<p>
2.验配单位负责近视矫正过程中的配戴眼数据采集分析镜片订制戴镜后跟踪评估及疑难咨询等工作
</p>
<p>
3.验配单位保证以高度责任心尽力达到最优近视矫治效果但由于个体差异及其他多种因素的影响验配单位无法对角膜塑形镜的效果做出任何保证性承诺
</p>
<p>
4.OK镜属于隐形眼镜它与其它隐形眼镜一样存在各种感染的可能如遇严重感染可能会影响眼睛健康必须规范使用按时随访
</p>
<p>
5.OK镜对近视的加深有相对延缓作用但并不能完全阻止近视的发展也不可能根治近视
</p>
<p>
6.<span style="color: red">关于0K镜破碎的优惠条款</span>配戴者需将<span style="color: red">原包装及完整的碎片镜片上要有完整编码</span>交还验配单位后方可享受以下优惠自镜片交付日算起<span style="font-weight: bold">30</span>天内可享受<span style="color: red">免费</span>换片一次<span style="color: red">已享受免费换片的新片如再次破碎无法再免费换片</span><span style="font-weight: bold">31~90天内</span>破碎<span style="color: red">按原价的半价</span>补片如镜片丢失碎片无完整编码粉碎性损坏无法交还原镜片及包装碎片缺少部分大于1/4整片等验配单位不提供免费换片<span style="color: red">患者收到取镜通知30天内未取镜则视为自动放弃该项优惠</span>
</p>
<p>
7.自镜片交付日算起90天内按要求复查的配戴者如果出现适配不理想的情况经验配单位鉴定需调整镜片设计参数重新订片的配戴者无需承担二次配镜的镜片购买费用如经验配单位鉴定无法消除且必须终止矫正的在配戴者退回完好无损的镜片和原包装后双方共同承担损失验配机构返还配戴者镜片费用<span style="font-weight: bold">百分之五十</span>的款项
</p>
<p>
8.配戴者在<span style="color: red">订单已发出或取镜后30天内</span>要求退片的在配戴者交回完好的原镜片及原包装将退还配戴者镜片费用<span style="color: red">百分之五十</span>的款项超过30天一律视为配戴者已主动放弃退片权利验配单位有权不受理退片申请
</p>
<p>
9.体检的配戴者镜片一旦订片概不受理退片
</p>
<p>
10.验配单位对配戴角膜塑形镜的人员进行试戴评估以便评估配戴者是否适合配戴角膜塑形镜但是鉴于个体条件的差异性使用习惯卫生条件以及其他外部环境的影响上述评估效果仅在试戴时确定配戴者是否适合配戴并非确定配戴以后任何时期是否适合配戴的有效依据因此验配单位无法保证正式配戴过程中不出现排异性不适配或其他不良反应
</p><p>
11.镜片常规使用寿命为<span style="color: red">1~1.5</span>夜间常规配戴时间<span style="color: red">7-10小时不超过12小时</span>
</p>
<p>
12.常规复查时间<span style="color: red">复查都要挂号到1楼或2楼眼视光中心</span> 进行复查<span style="color: red">到片取镜时学习摘戴方法不用挂号戴镜后的第1天早上复查起床不摘镜第1周第1个月必须按期复查若无特殊情况以后每3个月至少复查一次</span>严格遵守医嘱按时复查这是保障角膜塑形术疗效及规避相关问题的前提否则验配单位具有免责权利
</p>
<p>
13.配戴初期出现轻微的眼刺激症状或异物感一过性的结膜充血或轻微的视物叠影晨起后分泌物稍增多摘镜后眼睛轻度干涩等均为正常现象随着矫正期的延续会逐渐缓解或消失<span style="color: red">戴镜期间如果感冒发烧或出现持续性眼红眼痛畏光流泪等症状必须先停戴然后及时到医院就诊</span>并遵循医师处理
</p>
<p>
14.为保证矫正的安全有效及镜片的使用寿命须使用和镜片性能相配套的护理产品和附件若擅自使用未经验配单位认可的物品接触镜片导致的意外事件或不良反应由配戴者自行负责
</p>
<p>
15.矫正期间若发现发生与配戴角膜塑形镜无关的眼疾或其他疾病并因此导致终止矫正配戴者应自己承担全部责任
</p>
<div style="margin-top: 30px">
<div style="position: relative">
<span style="margin-right: 8px;vertical-align: middle;">是否已阅读<span style="font-weight: bold">此页告知书</span>并同意配戴<span style="font-weight: bold">角膜塑形镜OK镜</span></span>
<span v-if="isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('1')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin: 0 16px 0 24px;vertical-align: middle"></span>
<span v-if="!isCkeck" style="display:inline-block;width: 16px;height: 16px;border: solid 1px #ccc;border-radius: 50%;position: absolute;top: 5px" @click="selectRadio('2')" />
<img v-else style="position: absolute;top: 5px" :src="require('@/assets/img/radio.png')" alt="">
<span style="margin-left: 24px;vertical-align: middle"></span>
</div>
</div>
<div style="width: 100%;display: flex;justify-content: space-around;margin-top: 35px;">
<div @click="signClick(1)">
<span>医生/验光师</span>
<img v-if="optomFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="doctorSign">
</div>
<div @click="signClick(2)">
<span>配戴者</span>
<img v-if="wearerFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="patientSign">
</div>
<div @click="signClick(3)">
<span>监护人</span>
<img v-if="guardianFlag" :src="require('@/assets/img/signature.png')" alt="">
<img v-else style="width: 160px;height: 80px;" :src="guardianSign">
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import headTemplate from '@/components/head'
export default {
components: {
headTemplate
},
props: {
patientId: {
type: String,
default: ''
}
},
data() {
return {
isCkeck: false,
isNew: '',
noticeData: {},
isAgree: '1' // 1 2
}
},
computed: {
optomFlag: {
get() {
return this.$store.getters.optomFlag
},
set(val) {
}
},
wearerFlag: {
get() {
return this.$store.getters.wearerFlag
},
set(val) {
}
},
guardianFlag: {
get() {
return this.$store.getters.guardianFlag
},
set(val) {
}
},
readFlag: {
get() {
return this.$store.getters.readFlag
},
set(val) {
}
},
wearerOrGuardianFlag: {
get() {
return this.$store.getters.wearerOrGuardianFlag
},
set(val) {
}
},
doctorSign: {
get() {
return this.$store.getters.doctorSign
},
set(val) {
}
},
patientSign: {
get() {
return this.$store.getters.patientSign
},
set(val) {
}
},
guardianSign: {
get() {
return this.$store.getters.guardianSign
},
set(val) {
}
},
readerSign: {
get() {
return this.$store.getters.readerSign
},
set(val) {
}
},
wearerOrGuardianSign: {
get() {
return this.$store.getters.wearerOrGuardianSign
},
set(val) {
}
},
doctorSignDate: {
get() {
return this.$store.getters.doctorSignDate
},
set(val) {
}
},
wearerOrGuardianSignDate: {
get() {
return this.$store.getters.wearerOrGuardianSignDate
},
set(val) {
}
}
},
created() {
},
mounted() {
this.getNoticeName()
},
methods: {
selectRadio(index) {
this.isCkeck = !this.isCkeck
this.isAgree = index
},
signClick(index) {
this.$store.commit('beginSign', index)
},
handlePrint() {
this.printPage('notice-one')
this.printPage('notice-two')
},
//
getNoticeName() {
const params = {
patientId: this.patientId
}
this.$http.get('/hospital/notice/getNoticeSign', { params: params }).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
if (res.data) {
this.noticeData = res.data
this.isAgree = res.data.isAgree
this.isNew = res.data.isNew
this.isCkeck = this.isAgree === '2'
this.$store.commit('optomFlag', !res.data.doctorSign)
this.$store.commit('wearerFlag', !res.data.patientSign)
this.$store.commit('guardianFlag', !res.data.guardianSign)
this.$store.commit('readFlag', !res.data.readerSign)
this.$store.commit('wearerOrGuardianFlag', !res.data.wearerOrGuardianSign)
this.$store.commit('doctorSign', res.data.doctorSign)
this.$store.commit('patientSign', res.data.patientSign)
this.$store.commit('guardianSign', res.data.guardianSign)
this.$store.commit('readerSign', res.data.readerSign)
this.$store.commit('wearerOrGuardianSign', res.data.wearerOrGuardianSign)
this.$store.commit('doctorSignDate', res.data.doctorSignDate)
this.$store.commit('wearerOrGuardianSignDate', res.data.wearerOrGuardianSignDate)
} else {
this.isAgree = '1'
this.isNew = 3
this.isCkeck = false
this.$store.commit('optomFlag', true)
this.$store.commit('wearerFlag', true)
this.$store.commit('guardianFlag', true)
this.$store.commit('readFlag', true)
this.$store.commit('wearerOrGuardianFlag', true)
this.$store.commit('doctorSign', '')
this.$store.commit('patientSign', '')
this.$store.commit('guardianSign', '')
this.$store.commit('readerSign', '')
this.$store.commit('wearerOrGuardianSign', '')
this.$store.commit('doctorSignDate', '')
this.$store.commit('wearerOrGuardianSignDate', '')
}
}).catch(() => {})
},
//
saveEditNotice() {
const params = {
isNew: 3,
patientId: this.patientId,
drgsName: window.localStorage.getItem('identity'),
doctorSign: this.doctorSign,
guardianSign: this.guardianSign,
patientSign: this.patientSign,
readerSign: this.readerSign,
wearerOrGuardianSign: this.wearerOrGuardianSign,
doctorSignDate: this.doctorSignDate,
wearerOrGuardianSignDate: this.wearerOrGuardianSignDate,
isAgree: this.isAgree
}
this.$http.post('/hospital/notice', params).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功!')
this.getNoticeName()
}
}).catch(() => {})
}
}
}
</script>
<style lang="scss" scoped>
.notice-book {
width: 100%;
height: 100%;
display:flex;
flex-direction: column;
.notice-content{
width: 100%;
flex:1;
overflow-y: auto;
.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;
.title{
text-align: center;
margin-bottom: 32px;
}
p{
font-size: 14px;
}
.signature{
width: 100%;
display: flex;
justify-content: space-around;
margin-top: 35px;
}
.read{
margin-top: 32px;
}
.read_18{
font-size: 18px;
}
.radios{
margin-right: 8px;
vertical-align: middle;
}
}
}
}
</style>

4
src/page-subspecialty/views/modules/systemManagement/team/team-add-or-update.vue

@ -13,6 +13,9 @@
<el-form-item label="姓名:" label-width="100px" prop="realName">
<el-input v-model="dataForm.realName" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="身份证:" label-width="100px" prop="userIdNumber">
<el-input v-model="dataForm.userIdNumber" placeholder="身份证" />
</el-form-item>
<el-form-item v-if="!dataForm.id" label="登录密码:" label-width="100px" prop="password">
<el-input v-model="dataForm.password" placeholder="请输入密码" />
</el-form-item>
@ -133,6 +136,7 @@ export default {
employeeId: '',
realName: '',
password: '',
userIdNumber: '',
gender: 1,
mobile: '',
position: '门诊医师',

7
src/page-subspecialty/views/pages/login.vue

@ -56,7 +56,7 @@
<el-dialog
class="caLogin"
:visible.sync="visible"
width="40%"
width="60%"
title="CA登录"
@close="visible === false"
>
@ -75,7 +75,8 @@ export default {
activeName: 'first',
captchaPath: '',
visible: false,
caUrl: 'http://192.168.4.174:8080/ca-sign-xiangan/',
// caUrl: 'http://10.80.5.32:8034/ca3/index.jsp',
caUrl: 'http://10.80.5.32:8034/ca3/index.jsp',
dataForm: {
account: '',
password: '',
@ -241,7 +242,7 @@ export default {
height: 300px;
}
.el-dialog__body {
height: 350px;
height: 320px;
}
}
</style>

Loading…
Cancel
Save