nurseWeChatAppletUI/pages/modify/modify.vue
2023-05-22 16:01:59 +08:00

436 lines
12 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="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='5' />
</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="text" />
</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: "",
homeLatitude: "",
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
that.appPersonallist.homeLatitude = Number(that.appPersonallist.homeLatitude)
that.appPersonallist.homeLongitude = Number(that.appPersonallist.homeLongitude)
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>