<template>
|
<div class="page">
|
<div class="hader">
|
<div class="listrow">
|
<div class="rowioc">
|
<van-image
|
round
|
width="50px"
|
height="50px"
|
:src="patientInfo.patientInfo.patientAvatarIcon"
|
/>
|
</div>
|
<div class="rowtext">
|
手机号:{{patientInfo.patientInfo.patientTelNo}}
|
</div>
|
</div>
|
</div>
|
<div class="userinfo">
|
<div style="padding-left: 20px; padding-top: 12px; padding-right: 20px;">
|
<van-row style="border-bottom: 1px solid #f1f1f2;margin-top: 12px;">
|
<van-col span="12" style="margin-bottom: 12px;">患者卡片</van-col>
|
<van-col span="12" style="text-align: right;padding-right: 5px;"> <van-icon name="arrow" /></van-col>
|
</van-row>
|
</div>
|
|
<van-row style="padding-left: 20px;">
|
<van-col span="16" class="info16">
|
<div class="div1">{{patientInfo.patientInfo.patientName}}
|
<span class="but">排班提醒</span>
|
</div>
|
<div class="div2">卡号:{{patientInfo.patientInfo.patientCardNo}}</div>
|
<div class="div3" style="color: #409eff; font-family: cursive; font-size: 16px;">我的积分:{{patientInfo.patientInfo.patientCreditValue}} </div>
|
</van-col>
|
<van-col span="8" class="info8">
|
<div class="img" @click="imgShow">
|
<img
|
preview="1"
|
style=" width: 55px;height: 55px;margin-left: 8%; margin-top: 15px;"
|
referrerpolicy="no-referrer"
|
:src="erweima"
|
/>
|
<div class="devcc">出示患者码</div>
|
</div>
|
</van-col>
|
</van-row>
|
</div>
|
<div class="serves">
|
<div style="padding-left: 20px;">
|
<div class="title">其他服务</div>
|
<van-row>
|
<van-col span="6" class="serveitem">
|
<div @click="openOrder">
|
<van-image
|
:src="serve2"
|
/>
|
</div>
|
<div @click="openOrder">
|
我的订单
|
</div>
|
</van-col>
|
<van-col span="6" class="serveitem">
|
<div>
|
<van-image
|
:src="serve1"
|
/>
|
</div>
|
<div>
|
我的用药
|
</div>
|
</van-col>
|
<van-col span="6" class="serveitem">
|
<div>
|
<van-image
|
:src="serve2"
|
/>
|
</div>
|
<div>
|
检验指标
|
</div>
|
</van-col>
|
<van-col span="6" class="serveitem">
|
<div>
|
<van-image
|
:src="serve3"
|
/>
|
</div>
|
<div>
|
科室公告
|
</div>
|
</van-col>
|
<van-col span="6" class="serveitem">
|
<div>
|
<van-image
|
:src="serve4"
|
/>
|
</div>
|
<div>
|
科室介绍
|
</div>
|
</van-col>
|
<van-col span="6" class="serveitem">
|
<div>
|
<van-image
|
:src="serve5"
|
/>
|
</div>
|
<div>
|
智慧云客服
|
</div>
|
</van-col>
|
<van-col span="6" @click="show2 = true" class="serveitem">
|
<div>
|
<van-image
|
:src="serve6"
|
/>
|
</div>
|
<div>
|
更改密码
|
</div>
|
</van-col>
|
</van-row>
|
</div>
|
</div>
|
<div class="buttonbody">
|
<van-button type="primary" @click="logOUT" round block>退出登录</van-button>
|
</div>
|
<van-popup v-model:show="show">
|
<div class="imgcla">
|
<img
|
preview="1"
|
style=" width: 350px;height: 350px;"
|
referrerpolicy="no-referrer"
|
:src="erweiImg"
|
/>
|
</div>
|
</van-popup>
|
<van-popup v-model:show="show2" :style="{ height: '30%' }">
|
<div class="formbiaodan">
|
<van-form @submit="onSubmitUpPssword" label-width="80px">
|
<van-cell-group inset>
|
<van-field
|
v-model="ruleForm.pass"
|
type="password"
|
label="密  码"
|
placeholder="6-16位数字或者字母组合"
|
:rules="[{ required: true, message: '请填写密码' }]"
|
/>
|
<van-field
|
v-model="ruleForm.newPassword"
|
type="password"
|
label="确认密码"
|
placeholder="6-16位数字或者字母组合"
|
:rules="[{ validator: asyncValidator, message: '密码输入不一致' }]"
|
/>
|
</van-cell-group>
|
<div style="margin: 16px;">
|
<van-button :loading="loadingBUt" round block type="primary" native-type="submit">
|
提交
|
</van-button>
|
</div>
|
<div style="text-align: right; padding-right: 20px;">
|
<span type="primary" @click="show2 = false" native-type="submit">
|
取消
|
</span>
|
</div>
|
</van-form>
|
</div>
|
</van-popup>
|
<myOrder ref="myOrderRef"></myOrder>
|
<van-tabbar v-model="active" @change="tabChang">
|
<van-tabbar-item name="home" icon="like">首页</van-tabbar-item>
|
<van-tabbar-item name="xuanjiao" icon="smile-o">宣教</van-tabbar-item>
|
<van-tabbar-item name="my" icon="manager">我的</van-tabbar-item>
|
</van-tabbar>
|
</div>
|
</template>
|
<script lang="ts" setup>
|
import { ref,computed } from 'vue'
|
import {ajaxPost} from '@/utils/axios'
|
import { Session } from '@/utils/storage'
|
import { userInfoStore } from '@/stores/userInfo'
|
import myOrder from '../jifenShangCheng/components/myOrder.vue'
|
import serve1 from './imgs/serve1.png'
|
import serve2 from './imgs/serve2.png'
|
import serve3 from './imgs/serve3.png'
|
import serve4 from './imgs/serve4.png'
|
import serve5 from './imgs/serve5.png'
|
import serve6 from './imgs/serve6.png'
|
import erweima from './imgs/erwm.png'
|
import {useRouter} from 'vue-router'
|
import { Dialog, Toast } from 'vant'
|
const router=useRouter()
|
const userInfo = userInfoStore()
|
const myOrderRef=ref()
|
const active=ref('my')
|
const ruleForm=ref({
|
newPassword:'',
|
pass:'',
|
})
|
const loadingBUt= ref(false)
|
const show=ref(false)
|
const show2=ref(false)
|
const erweiImg=ref('')
|
const asyncValidator = (val:any) =>{
|
return val===ruleForm.value.pass
|
}
|
const openOrder=()=>{
|
myOrderRef.value.openShow()
|
}
|
const tabChang=(index:any)=>{
|
if (index==='home'){
|
router.push('/')
|
} else if (index==='xuanjiao') {
|
Toast('此功能正在开发中,敬请期待')
|
return
|
router.push('xuanjiao')
|
} else if (index==='my') {
|
router.push('my')
|
}
|
}
|
const imgShow=()=>{
|
show.value=true
|
ajaxPost('/patient/info/showQRCode',`patientCode=${patientInfo.value.patientInfo.code}&isForceLoad=1`).then((res:any)=>{
|
show.value=true
|
erweiImg.value=res
|
})
|
}
|
const patientInfo=computed(()=>{
|
return userInfo.patient
|
})
|
const onSubmitUpPssword=(values:any)=>{
|
console.log('提交表单',ruleForm.value)
|
console.log(values)
|
const pams={
|
patientCode:patientInfo.value.patientInfo.code,
|
password:ruleForm.value.pass
|
}
|
loadingBUt.value=true
|
ajaxPost('/patient/info/resetPassword',pams).then((re:any)=>{
|
console.log(re)
|
loadingBUt.value=false
|
if (re==='OK'){
|
show2.value=false
|
Dialog.alert({
|
title: '提示',
|
message: '密码重置成功',
|
}).then(() => {
|
// on close
|
})
|
}
|
|
}).catch(err=>{
|
loadingBUt.value=false
|
console.log(err)
|
})
|
|
}
|
const logOUT=()=>{
|
ajaxPost('/patient/info/logout','').then((re:any)=>{
|
console.log(re)
|
Session.remove('token')
|
Session.clear() // 清除缓存/token等
|
alert('退出登录成功',Session.get('token'))
|
router.push('login')
|
})
|
}
|
</script>
|
<style lang="scss" scoped>
|
body {
|
background-color: #166bd3;
|
}
|
|
.page {
|
.imgcla {
|
width: 350px;
|
min-height: 350px;
|
border: #777 1px solid;
|
}
|
|
.formbiaodan {
|
padding-top: 30px;
|
width: 350px;
|
}
|
background-color: #f6faff;
|
position: relative;
|
min-width: 375px;
|
min-height: 800px;
|
|
.hader {
|
margin-top: 20px;
|
margin-bottom: 20px;
|
height: 50px;
|
width: 92%;
|
margin-left: 4%;
|
text-align: left;
|
|
.listrow {
|
grid-template-columns: minmax(50px, 20%) 1fr;
|
display: grid;
|
|
.rowtext {
|
margin-top: 15px;
|
font-size: 13px;
|
|
// font-family: PingFangSC-Regular, PingFang SC;
|
font-weight: 400;
|
color: #777;
|
}
|
}
|
|
.hader-regth {
|
height: 50px;
|
text-align: right;
|
line-height: 50px;
|
}
|
}
|
|
.userinfo {
|
width: 92%;
|
margin-left: 4%;
|
height: 160px;
|
background: #fff;
|
box-shadow: 0 2px 4px 0 rgba(70, 150, 249, 0.1);
|
border-radius: 5px;
|
|
.info16 {
|
text-align: left;
|
|
// background:red;
|
.div1 {
|
margin-top: 20px;
|
margin-bottom: 6px;
|
height: 21px;
|
font-size: 15px;
|
|
// font-family: PingFangSC-Medium, PingFang SC;
|
font-weight: 500;
|
color: #333;
|
line-height: 21px;
|
|
.but {
|
// font-family: PingFangSC-Regular, PingFang SC;
|
font-weight: 400;
|
color: #fdfdfd;
|
background: rgb(77, 124, 212);
|
border-radius: 8px;
|
height: 20px;
|
line-height: 20px;
|
font-size: 13px;
|
padding: 2px 8px;
|
}
|
}
|
|
.div2 {
|
height: 17px;
|
font-size: 12px;
|
|
// font-family: PingFangSC-Regular, PingFang SC;
|
font-weight: 400;
|
color: #777;
|
line-height: 17px;
|
}
|
|
.div3 {
|
margin-top: 6px;
|
height: 20px;
|
font-size: 14px;
|
font-family: PingFangSC-Regular, "PingFang SC", sans-serif;
|
font-weight: 400;
|
color: #777;
|
line-height: 20px;
|
}
|
}
|
}
|
|
.serves {
|
background: #fff;
|
border-radius: 8px;
|
align-self: center;
|
margin-top: 20px;
|
width: 92%;
|
margin-left: 4%;
|
padding-top: 12px;
|
|
// padding-left: 20px;
|
padding-bottom: 20px;
|
|
.title {
|
margin-top: 12px;
|
overflow-wrap: break-word;
|
color: rgba(51, 51, 51, 1);
|
font-size: 14px;
|
font-family: PingFangSC-Regular, "PingFang SC", sans-serif;
|
text-align: left;
|
white-space: nowrap;
|
line-height: 20px;
|
|
// margin-bottom: 20px;
|
}
|
|
.serveitem {
|
text-align: center;
|
margin-top: 20px;
|
font-size: 13px;
|
font-family: PingFangSC-Regular, "PingFang SC", sans-serif;
|
font-weight: 400;
|
color: #333;
|
line-height: 20px;
|
}
|
}
|
}
|
|
.info8 {
|
text-align: right;
|
padding-right: 40px;
|
border-left: #f1f1f2 solid 1px;
|
|
// background: #166bd3;
|
.devcc {
|
height: 14px;
|
font-size: 10px;
|
font-family: PingFangSC-Regular, "PingFang SC", sans-serif;
|
font-weight: 400;
|
color: #777;
|
line-height: 14px;
|
}
|
}
|
|
.text {
|
background: #166bd3;
|
}
|
|
.buttonbody {
|
margin-top: 40px;
|
width: 92%;
|
margin-left: 4%;
|
}
|
</style>
|