xinelu-applet-ui/pagesC/contractsigningprotocol/contractsigningprotocol.vue
2024-11-15 16:47:42 +08:00

343 lines
13 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="app">
<view class="agreement-title-box">
家庭医生签约服务协议书
</view>
<view class="agreement-content-container">
<view class="agreement-content_parta-box">
<h4>甲方</h4>
<h4 class="box-line">
{{list.signInfo.cityName}}{{list.signInfo.countyName}}{{list.signInfo.orgName}}
</h4>
</view>
<view class="agreement-content_parta-box">
<h4>乙方</h4>
<h4 class="box-line">{{list.signInfo.residentName?list.signInfo.residentName:''}}</h4>
</view>
<scroll-view class="scroll-view" scroll-x="true">
<view class="itemdata">
<uni-table border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th>家庭成员</uni-th>
<uni-th>性别</uni-th>
<uni-th>年龄</uni-th>
<uni-th>身份证号</uni-th>
<uni-th>社会保障号</uni-th>
<uni-th>关爱等级</uni-th>
<uni-th>手机号码</uni-th>
<!-- <uni-th>选择签约基础服务包 </uni-th>
<uni-th>选择签约个性服务包</uni-th> -->
</uni-tr>
<uni-tr>
<uni-td>{{list.signInfo.residentName?list.signInfo.residentName:''}}</uni-td>
<uni-td>{{list.signInfo.gender === '1' ? '男' : '女'}}</uni-td>
<uni-td>{{list.signInfo.age?list.signInfo.age:''}}</uni-td>
<uni-td>{{list.signInfo.identity?list.signInfo.identity:''}}</uni-td>
<uni-td>{{list.signInfo.medicare?list.signInfo.medicare:''}}</uni-td>
<uni-td></uni-td>
<uni-td>{{list.signInfo.phone?list.signInfo.phone:''}}</uni-td>
<!-- <uni-td>{{list.basePackagesName?list.basePackagesName:''}} </uni-td>
<uni-td>{{list.specialPackagesName?list.specialPackagesName:""}}</uni-td> -->
</uni-tr>
</uni-table>
<uni-table border stripe emptyText="">
<uni-tr>
<uni-th></uni-th>
</uni-tr>
<uni-tr>
<uni-td>家庭住址:{{list.signInfo.address?list.signInfo.address:''}}</uni-td>
</uni-tr>
</uni-table>
<uni-table border stripe emptyText="">
<uni-tr>
<uni-th></uni-th>
</uni-tr>
<uni-tr>
<uni-td>
<u-radio-group v-model="radiovalue">
<u-radio name="接受上门服务" :disabled='true'>
接受上门服务
</u-radio>
<u-radio name="拒绝上门服务" :disabled='true'>
拒绝上门服务
</u-radio>
</u-radio-group>
</uni-td>
</uni-tr>
</uni-table>
</view>
</scroll-view>
<view>
<p style='padding-top: 30rpx;line-height: 46rpx;'>甲乙双方本着平等、尊重和自愿的原则,签订此协议,接受以下条款的约定</p>
<p style='padding: 30rpx 0;line-height: 46rpx;'>甲乙双方共同确定
<text class="">{{list.signInfo.teamName}}</text>为乙方的家庭医生服务团队
</p>
<scroll-view class="scroll-view" scroll-x="true">
<view class="itemdata">
<uni-table border stripe emptyText="暂无更多数据">
<uni-tr>
<uni-th>家庭医生服务团队成员</uni-th>
<uni-th>姓名</uni-th>
<uni-th>职称</uni-th>
<uni-th>固定电话</uni-th>
<uni-th>联系电话</uni-th>
</uni-tr>
<uni-tr v-for="(member, index) in list.signInfo.dutyDoctorList" :index="index" :key="index">
<uni-td v-if="member.teamLeader">
团队长
</uni-td>
<uni-td v-else>
{{member.teamMemberType=='0'?'全科医生':''}}
{{member.teamMemberType=='1'?'专科医生':''}}
{{member.teamMemberType=='2'?'社区护士':''}}
{{member.teamMemberType=='3'?'公共卫生人员':''}}
</uni-td>
<uni-td>{{member.realname?member.realname:''}}</uni-td>
<uni-td>
{{member.profTitle=='0'?'初级':''}}
{{member.profTitle=='1'?'中级':''}}
{{member.profTitle=='2'?'高级':''}}
{{member.profTitle=='99'?'其他':''}}
</uni-td>
<uni-td>{{member.landline?member.landline:''}}</uni-td>
<uni-td>{{member.mobilePhone?member.mobilePhone:''}}</uni-td>
</uni-tr>
</uni-table>
</view>
</scroll-view>
<!-- <u-parse style="margin-top: 30rpx;" :html="list.protocolContent.content"></u-parse> -->
<h4 style='padding-top: 30rpx;font-weight: 600;'>甲方职责</h4>
<p style='padding-top: 30rpx;line-height: 46rpx;'>
为乙方{{list.signInfo.residentName?list.signInfo.residentName:''}}提供以下个性化签约服务</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>1.在基本公共卫生服务基础上根据乙方需求制定健康管理方案提供个性化服务建议中医药专项补充服务建议等
<p style='padding-top: 30rpx;line-height: 46rpx;'>2.与甲方沟通共同确定签约服务内容时间和频次具体内容附后</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>3.根据协议内容履行签约服务</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>为乙方家庭成员共同提供以下服务</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>1.向老年人子女推送健康体检报告和健康状况变化情况</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>2.</p>
<h4 style='padding-top: 30rpx;font-weight: 600;'>乙方职责</h4>
<p style='padding-top: 30rpx;line-height: 46rpx;'>提供健康相关信息</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>
乙方及家庭成员主动配合甲方开展以上服务将身体健康情况变化情况及时告知家庭医生并保证信息资料的真实合法性</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>预约协商上门服务和非工作时间提供服务</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>如需甲方上门服务时乙方应提前与甲方预约或沟通商定服务形式和时间</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>执行甲方提供的疾病防治方案</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>积极配合并参与甲方开展的疾病防治相关活动认真执行甲方提供的疾病防控措施</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>承担违约后果</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>
1.乙方隐瞒病史或提供虚假资料不执行甲方提供的诊疗方案等非甲方导致的不利因素影响诊疗效果后果由乙方承担</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>
2.乙方有就医需求非紧急状态应首先联系甲方因个人原因未经甲方转诊影响就医费用结算或造成其他不良后果的由乙方承担责任</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>反馈甲方服务情况</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>乙方如对团队成员服务不满意可向甲方投诉乃至更换签约医生</p>
<h4 style='padding-top: 30rpx;font-weight: 600;'>服务收费</h4>
<p style='padding-top: 30rpx;line-height: 46rpx;'>
1. 乙方按照自愿原则选择<text class="">
{{list.basePackagesName?list.basePackagesName:''}}{{list.specialPackagesName?''+list.specialPackagesName:''}}服务,
</text>由甲方提供相应服务服务费为<text class="">{{list.packSignCost}}</text>/</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>2.服务过程中根据医生判断及患者临时需求增加的服务内容按照国家相关规定和当地物价部门规定收费
</p>
<p style='padding-top: 30rpx;line-height: 46rpx;'>3.乙方应于<text class="">{{list.signInfo.signTime}}</text>
前将签约服务费缴纳至甲方机构指定科室不得由签约团队成员代收
</p>
<h4 style='padding-top: 30rpx;font-weight: 600;'>
保密条款签约居民授权其所签约的家庭医生及其团队成员可调阅其电子健康档案和在其他医疗机构的诊疗记录信息甲方有义务对签约居民的电子健康档案和在其他医疗机构的诊疗记录信息予以保密除法律法规规定外未经签约居民允许不得泄露给第三方
</h4>
<h4 style='padding-top: 30rpx;font-weight: 600;'>
本协议未尽事宜经双方协商一致签订补充协议补充协议具有同等效力
</h4>
<h4 style='padding-top: 30rpx;font-weight: 600;'>
本协议解释权归甲方协议一式两份乙双方各执一份自双方签字之日起生效
有效期<text class="">{{list.signYears}}</text>,
<text class="">{{list.signInfo.signTime}}{{' —— '}}{{list.signInfo.signDeadline}}</text>
</h4>
</view>
</view>
<view class="agreement-execute_container-img">
<view class="parta-execute_box">
<view class="textparta">甲方(团队长)签字</br><text style="padding-left: 15rpx;">(单位盖章)</text></view>
<image :src="list.doctorBase64" mode="aspectFill" style="width: 280rpx; height: 200rpx;"></image>
</view>
<view class="parta-execute_box">
<view class="textparta">乙方(居民)签字</br><text style="padding-left: 8rpx;">或拍照</text></view>
<image :src="list.residentBase64" mode="widthFix" style="width: 180rpx; height: 180rpx;"></image>
</view>
<view class="parta-execute_box">
<view class="textparta">单位盖章</view>
<image :src="list.orgBase64" mode="widthFix" style="width: 180rpx; height: 180rpx;"></image>
</view>
<view class="parta-execute_box">
</view>
<view class="parta-execute_box">
<view class="textparta">{{list.signInfo.signTime}}</view>
</view>
<view class="parta-execute_box">
<view class="textparta">{{list.signInfo.signTime}}</view>
</view>
</view>
<!-- <u-mask :show="signatureshow" @click="signatureshow = false">
<view style="position:absolute;bottom:0;height:900rpx;width:100%;background-color: #fff;"
v-if='signatureshow'>
<signature @userSignaturePictureUrl='userSignaturePicture' @click.native.stop
style='background-color: #F4F5F7;width: 100%;height: 900rpx;'></signature>
</view>
</u-mask> -->
<!-- <uni-fab ref="fab" horizontal="left" vertical="bottom" :content="fabContent" @trigger="fabTrigger" /> -->
</view>
</template>
<script>
import baseurl from '@/api/baseurl.js'
import signature from '../signature/signature.vue'
import {
getSignProtocol
} from '@/api/pagesC/contractsigningprotocol/index.js'
export default {
components: {
signature
},
data() {
return {
radiovalue: '',
signatureshow: false,
list: null,
fabContent: [{
iconPath: '/static/pagesC/signature-unselected.png',
selectedIconPath: '/static/pagesC/signature-selected.png',
text: '居民签字',
active: true
}, {
iconPath: '/static/pagesC/camera-unselected.png',
selectedIconPath: '/static/pagesC/camera.png',
text: '居民拍照',
active: true
}],
};
},
methods: {
fabTrigger(e) {
if (e.index === 0) {
this.signatureshow = true
} else if (e.index === 1) {
this.openCamera()
}
},
openCamera() {
let that = this
setTimeout(function() {
uni.chooseImage({
sizeType: ['compressed'],
sourceType: ['camera'],
success: function(res) {
let tempFilePath = res.tempFilePaths[0]
uni.saveImageToPhotosAlbum({
filePath: tempFilePath,
success: (resp) => {
uni.uploadFile({
url: baseurl +
'/applet/sign/apply/residentSignatureUpload',
filePath: tempFilePath,
name: 'file',
header: {
region: uni.getStorageSync('region'),
},
timeout: 10000,
success(respp) {
// residentAutographPath
console.log(respp)
}
})
}
})
}
})
},
150)
},
// //签名
userSignaturePicture(data) {
this.signatureshow = false
},
info() {
getSignProtocol(uni.getStorageSync('userinfo').cardNo).then(res => {
this.list = res.data
})
},
},
onLoad(options) {
this.info();
},
}
</script>
<style lang="scss">
.app {
width: 98%;
margin: 10rpx auto;
background-color: #fff;
}
.scroll-view {
width: 100%;
white-space: nowrap; //scroll-view元素
.itemdata {
width: 105%;
display: inline-block; //子元素
}
}
.agreement-title-box {
padding-top: 20rpx;
margin: 0 0 30rpx;
font-size: 40rpx;
font-weight: 600;
text-align: center;
}
.agreement-content-container {
margin: 10rpx 10rpx;
font-size: 16px;
color: #333333;
padding-bottom: 100rpx;
}
.agreement-content_parta-box {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
margin-bottom: 20rpx;
}
.agreement-execute_container-img {
display: flex;
flex-wrap: wrap;
padding-bottom: 200rpx;
.parta-execute_box {
width: 50%;
.textparta {
display: inline-block;
width: 100%;
text-align: center;
}
image {
display: block;
margin: 30rpx auto;
}
}
}
.box-line {
display: inline-block;
padding: 0 20rpx;
text-align: center;
border-bottom: 1px #808080 solid;
}
</style>