436 lines
12 KiB
Vue
436 lines
12 KiB
Vue
<template>
|
||
<view class="app">
|
||
<view class="userinfo">
|
||
<view class="itemimgs">
|
||
<image class="picture" :src="img" mode="" v-if="img" @tap='uploadImag'></image>
|
||
<image class="picture" src="../../static/userl.png" mode="" v-else @tap='uploadImag'></image>
|
||
</view>
|
||
<view class="item">
|
||
<span>姓名:</span>
|
||
<u-input :clearable='false' v-model="appPersonallist.patientName" placeholder="请输入" type="text"
|
||
maxlength='30' />
|
||
</view>
|
||
<view class="item">
|
||
<span>性别:</span>
|
||
<u-radio-group v-model="appPersonallist.sex" size='44'>
|
||
<u-radio @change='sexchange' v-for="(item, index) in sexlist" :key="index" :name="item.name"
|
||
:disabled="item.disabled">
|
||
{{item.name}}
|
||
</u-radio>
|
||
</u-radio-group>
|
||
</view>
|
||
<!-- <view class="item">
|
||
<span>电话:</span>
|
||
<u-input :clearable='false' v-model="appPersonallist.phone" placeholder="请输入" maxlength='11'
|
||
type="number" />
|
||
</view> -->
|
||
<view class="item" @tap='timeshow=true'>
|
||
<span>出生日期:</span>
|
||
<view class="address" style="" v-if="appPersonallist.birthDate">
|
||
{{appPersonallist.birthDate}}
|
||
</view>
|
||
</view>
|
||
<view class="item">
|
||
<span>身份证号:</span>
|
||
<u-input :clearable='false' v-model="appPersonallist.cardNo" placeholder="请输入身份证号" type="text"
|
||
maxlength='18' />
|
||
</view>
|
||
<view class="item" @tap='showPicker'>
|
||
<span>所属区域:</span>
|
||
<view class="address">{{address}}</view>
|
||
</view>
|
||
<view class="item">
|
||
<span>详细地址:</span>
|
||
<u-input :clearable='false' v-model="appPersonallist.address" type="text" maxlength='40'
|
||
placeholder='小区、单元、门牌号' />
|
||
</view>
|
||
<view class="item" @tap='getAddress()'>
|
||
<span>所在位置:</span>
|
||
<view class="address" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"
|
||
v-if="appPersonallist.locationName">
|
||
{{appPersonallist.locationName}}
|
||
</view>
|
||
<view class="address" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;" v-else>
|
||
</view>
|
||
</view>
|
||
<view class="disease" style="border: none;" @tap="godisease">
|
||
<view class="title" style="">基础疾病:</view>
|
||
<image class="pictureA" src="../../static/huijiantou.png" mode=""></image>
|
||
<view style="padding-right: 10rpx;display: inline-block;"
|
||
v-for="(item,index) in patientDiseaseInfoList">
|
||
{{item.diseaseName}}
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="radio-content">
|
||
<view class="radio-right" @click='changeRadio'>
|
||
<view class="radio" :class="radio == 2 ? 'radio-default':''">
|
||
<view :class="radio == 2 ? 'radio-active':''"></view>
|
||
</view>
|
||
</view>
|
||
<view class="agreement" @click.stop='changeRadio'>我已阅读并同意<text @click.stop='maskshow=true'
|
||
style="color: #000000;border-bottom: 1rpx solid #000000;">《用户协议》</text>
|
||
</view>
|
||
</view>
|
||
<view class="finish" @tap="informationinfo()">确认修改
|
||
</view>
|
||
<u-toast ref="uToast" />
|
||
<!-- //用户协议 -->
|
||
<u-mask :show="maskshow" class='mask' @click='maskshow=false'>
|
||
<view class="Agreement">
|
||
<view class="title">
|
||
用户协议与隐私政策
|
||
</view>
|
||
<scroll-view scroll-y="true" class="scroll-Y" style="">
|
||
<contenttext></contenttext>
|
||
</scroll-view>
|
||
<view class="cancel" @tap='maskshow=false'>
|
||
取消
|
||
</view>
|
||
<view class="determine" @tap='tapradio'>
|
||
确定并同意
|
||
</view>
|
||
</view>
|
||
</u-mask>
|
||
<view class="">
|
||
<m-city style='z-index: 10076;' :provinceData="list" headTitle="地区选择" ref="cityPicker"
|
||
@funcValue="getpickerParentValue" pickerSize="4">
|
||
</m-city>
|
||
</view>
|
||
<u-picker mode="time" v-model="timeshow" :params="params" @confirm='timechange' @canel='timeshow=false'>
|
||
</u-picker>
|
||
</view>
|
||
</template>
|
||
<script>
|
||
import {
|
||
getRegionAndStreetInfo
|
||
} from '@/api/information/index.js'
|
||
import {
|
||
information
|
||
} from '@/api/information/index.js'
|
||
import contenttext from '../../components/text.vue'
|
||
import baseurl from '@/api/baseurl.js'
|
||
import {
|
||
appPersonal,
|
||
} from '@/api/Personal/Personal.js';
|
||
import {
|
||
getSubordinateRegions,
|
||
} from '@/api/modifyAddress/modifyAddress.js';
|
||
import gkcity from "../../components/m-city/m-city.vue";
|
||
export default {
|
||
components: {
|
||
contenttext,
|
||
"m-city": gkcity
|
||
},
|
||
data() {
|
||
return {
|
||
params: {
|
||
year: true,
|
||
month: true,
|
||
day: true,
|
||
hour: false,
|
||
minute: false,
|
||
second: false
|
||
},
|
||
timeshow: false, //出生日期
|
||
sexlist: [{
|
||
name: '男',
|
||
disabled: false
|
||
},
|
||
{
|
||
name: '女',
|
||
disabled: false
|
||
}
|
||
],
|
||
list: [{
|
||
id: "",
|
||
localName: "请选择",
|
||
children: [],
|
||
}, ],
|
||
radio: 1,
|
||
baseurl: '',
|
||
address: '',
|
||
maskshow: false, //用户协议
|
||
img: null,
|
||
image: null,
|
||
timer: null,
|
||
appPersonallist: {
|
||
patientName: "",
|
||
cardNo: "",
|
||
phone: "",
|
||
address: "",
|
||
areaCode: "",
|
||
homeLongitude: null,
|
||
homeLatitude: null,
|
||
nurseTypeIdList: [],
|
||
diseaseInfoList: [],
|
||
headPictureUrl: '',
|
||
birthDate: '',
|
||
locationName: '',
|
||
sex: '',
|
||
},
|
||
patientDiseaseInfoList: [], //获取个人信息
|
||
addresslength: null,
|
||
}
|
||
},
|
||
onLoad(options) {
|
||
this.areaInfo();
|
||
this.baseurl = baseurl
|
||
var that = this
|
||
const value = uni.getStorageSync('patientId');
|
||
if (value) {
|
||
appPersonal(value).then(Response => {
|
||
if (Response.code == 200) {
|
||
that.appPersonallist = Response.data
|
||
Number(that.appPersonallist.homeLatitude) > 0 ? that.appPersonallist.homeLatitude = Number(that.appPersonallist.homeLatitude) : that.appPersonallist.homeLatitude = null
|
||
Number(that.appPersonallist.homeLongitude) > 0 ? that.appPersonallist.homeLongitude = Number(that.appPersonallist.homeLongitude):that.appPersonallist.homeLongitude = null
|
||
if (that.appPersonallist.headPictureUrl) {
|
||
that.img = baseurl + that.appPersonallist.headPictureUrl
|
||
}
|
||
if (that.appPersonallist.sex == 'MALE') {
|
||
that.appPersonallist.sex = '男';
|
||
} else if (that.appPersonallist.sex == 'FEMALE') {
|
||
that.appPersonallist.sex = '女';
|
||
}
|
||
if (that.appPersonallist.areaName) {
|
||
that.address = that.appPersonallist.areaName
|
||
}
|
||
that.patientDiseaseInfoList = that.appPersonallist.patientDiseaseInfoList
|
||
if (that.patientDiseaseInfoList.length > 0) {
|
||
that.patientDiseaseInfoList.forEach(e => {
|
||
e.id = e.diseaseId
|
||
})
|
||
}
|
||
} else if (Response.code == 9999) {} else {
|
||
uni.navigateBack({
|
||
delta: 1
|
||
})
|
||
}
|
||
})
|
||
} else {}
|
||
},
|
||
methods: {
|
||
//性别
|
||
sexchange(e) {
|
||
if (e == '男') {
|
||
this.appPersonallist.sex = 'MALE';
|
||
} else if (e == '女') {
|
||
this.appPersonallist.sex = 'FEMALE';
|
||
}
|
||
},
|
||
//选择出生日期
|
||
timechange(e) {
|
||
this.appPersonallist.birthDate = e.year + '-' + e.month + '-' + e.day
|
||
},
|
||
// 三级地址联动回调
|
||
getpickerParentValue(e) {
|
||
this.addresslength = e
|
||
if (e.length == 4) {
|
||
this.address = e[0].localName + e[1].localName + e[2].localName + e[3]
|
||
.localName
|
||
this.appPersonallist.areaCode = e[3].id
|
||
} else if (e.length == 3) {
|
||
this.address = e[0].localName + e[1].localName + e[2].localName
|
||
this.appPersonallist.areaCode = e[2].id
|
||
} else if (e.length == 2) {
|
||
this.address = e[0].localName + e[1].localName
|
||
this.appPersonallist.areaCode = e[1].id
|
||
} else if (e.length == 1) {
|
||
this.address = e[0].localName
|
||
this.appPersonallist.areaCode = e[0].id
|
||
} else {
|
||
this.address = ''
|
||
this.appPersonallist.areaCode = ''
|
||
}
|
||
},
|
||
// 显示三级地址联动
|
||
showPicker() {
|
||
this.$refs.cityPicker.show();
|
||
},
|
||
//上传图片+提交信息
|
||
data() {
|
||
var that = this
|
||
if (that.appPersonallist.sex == '男') {
|
||
that.appPersonallist.sex = 'MALE';
|
||
} else if (that.appPersonallist.sex == '女') {
|
||
that.appPersonallist.sex = 'FEMALE';
|
||
}
|
||
if (that.radio == 1) {
|
||
that.$refs.uToast.show({
|
||
title: '请审核并同意用户协议',
|
||
type: 'error'
|
||
})
|
||
} else {
|
||
if (that.image) {
|
||
uni.uploadFile({
|
||
url: baseurl + '/nurseApplet/uploadFile/uploadHeadPictureUrl',
|
||
filePath: that.appPersonallist.headPictureUrl,
|
||
name: 'file',
|
||
formData: {
|
||
'patientId': that.appPersonallist.patientId
|
||
},
|
||
timeout: 5000,
|
||
success(res) {
|
||
that.appPersonallist.headPictureUrl = JSON.parse(res.data).imgUrl
|
||
that.appPersonallist.diseaseInfoList = that.patientDiseaseInfoList
|
||
information(that.appPersonallist).then(res => {
|
||
if (res.code == 200) {
|
||
that.$refs.uToast.show({
|
||
title: '修改信息成功',
|
||
type: 'success',
|
||
duration: '1500'
|
||
})
|
||
if (that.timer) {
|
||
clearTimeout(that.timer)
|
||
}
|
||
that.timer = setTimeout(e => {
|
||
uni.navigateBack({
|
||
delta: 1
|
||
})
|
||
}, 1500)
|
||
} else if (res.code == 500) {
|
||
that.$refs.uToast.show({
|
||
title: res.msg,
|
||
type: 'error',
|
||
url: ''
|
||
})
|
||
}
|
||
})
|
||
}
|
||
})
|
||
} else {
|
||
that.appPersonallist.diseaseInfoList = that.patientDiseaseInfoList
|
||
information(that.appPersonallist).then(res => {
|
||
if (res.code == 200) {
|
||
that.$refs.uToast.show({
|
||
title: '修改信息成功',
|
||
type: 'success',
|
||
duration: '1500'
|
||
})
|
||
if (that.timer) {
|
||
clearTimeout(that.timer)
|
||
}
|
||
that.timer = setTimeout(e => {
|
||
uni.navigateBack({
|
||
delta: 1
|
||
})
|
||
}, 1500)
|
||
} else if (res.code == 500) {
|
||
that.$refs.uToast.show({
|
||
title: res.msg,
|
||
type: 'error',
|
||
})
|
||
}
|
||
})
|
||
}
|
||
}
|
||
},
|
||
informationinfo() {
|
||
//上传图片
|
||
var that = this
|
||
if (this.addresslength) {
|
||
if (this.addresslength.length > 2) {
|
||
that.data();
|
||
} else {
|
||
that.$refs.uToast.show({
|
||
title: '所属区域应选择所在的区或街道,请重新选择!',
|
||
type: 'error'
|
||
})
|
||
}
|
||
} else {
|
||
that.data();
|
||
}
|
||
|
||
},
|
||
//上传头像
|
||
uploadImag() {
|
||
var that = this;
|
||
uni.chooseImage({
|
||
count: 1,
|
||
sizeType: ['original'],
|
||
sourceType: ['album'],
|
||
success(res) {
|
||
that.appPersonallist.headPictureUrl = res.tempFilePaths[0]
|
||
that.img = res.tempFilePaths[0]
|
||
that.image = res.tempFilePaths[0]
|
||
}
|
||
})
|
||
},
|
||
//获取所在位置
|
||
getAddress() {
|
||
var that = this;
|
||
uni.chooseLocation({
|
||
success: function(res) {
|
||
that.appPersonallist.locationName = res.address
|
||
that.appPersonallist.homeLongitude = res.longitude;
|
||
that.appPersonallist.homeLatitude = res.latitude;
|
||
}
|
||
});
|
||
},
|
||
// //获取所在位置
|
||
// getAddress() {
|
||
// uni.getLocation({
|
||
// type: 'wgs84',
|
||
// success: function(res) {
|
||
// const key = '3VABZ-6LZWK-YPAJ3-AMQED-D7RUK-VPB37'; //使用在腾讯位置服务申请的key
|
||
// const referer = '泉医到家'; //调用插件的app的名称
|
||
// const location = JSON.stringify({
|
||
// latitude: 39.89631551,
|
||
// longitude: 116.323459711
|
||
// });
|
||
// wx.navigateTo({
|
||
// url: 'plugin://chooseLocation/index?key=' + key + '&referer=' + referer
|
||
// });
|
||
// }
|
||
// });
|
||
// },
|
||
//区街道
|
||
areaInfo() {
|
||
getSubordinateRegions().then(res => {
|
||
this.list = res.data;
|
||
})
|
||
},
|
||
//跳转疾病选择
|
||
godisease() {
|
||
uni.navigateTo({
|
||
url: `/pages/disease/disease?diseaseInfoList=${JSON.stringify(this.patientDiseaseInfoList)}`,
|
||
})
|
||
},
|
||
changeRadio() {
|
||
if (this.radio == 1) {
|
||
this.radio = 2;
|
||
} else {
|
||
this.radio = 1;
|
||
}
|
||
},
|
||
tapradio() {
|
||
this.radio = 2;
|
||
this.maskshow = false;
|
||
},
|
||
},
|
||
onUnload() {
|
||
// 页面卸载时设置插件选点数据为null,防止再次进入页面,geLocation返回的是上次选点结果
|
||
// chooseLocation.setLocation(null);
|
||
},
|
||
//带参返回
|
||
onShow() {
|
||
let that = this
|
||
// const chooseLocation = requirePlugin('chooseLocation');
|
||
// const location = chooseLocation.getLocation(); // 如果点击确认选点按钮,则返回选点结果对象,否则返回null
|
||
// if (location) {
|
||
// that.appPersonallist.locationName = location.address
|
||
// that.appPersonallist.homeLongitude = location.longitude;
|
||
// that.appPersonallist.homeLatitude = location.latitude;
|
||
// }
|
||
uni.$on('disease', function(data) {
|
||
that.patientDiseaseInfoList = JSON.parse(data.disease)
|
||
uni.$off('disease')
|
||
})
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
@import "./modify.scss"
|
||
</style>
|