xinelu-applet-ui/pagesB/modify/modify.vue
2024-07-01 18:02:26 +08:00

470 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="userinfo">
<view class="itemimgs">
<image class="picture" :src="img" mode="" v-if="img" @tap='uploadImag'></image>
<image class="picture" :src="require('@/pagesC/images/headsculpture.png')" mode="" v-else
@tap='uploadImag'></image>
<view class="text" @tap='uploadImag'>
点击编辑头像
</view>
</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-input :clearable='false' v-model="appPersonallist.phone" placeholder="请输入" maxlength='11'
type="number" />
</view>
<view class="item">
<span>性别:</span>
<u-radio-group v-model="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" @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' disabled />
</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="name">
<span>基础疾病</span>
<view class="select">
<ld-select :multiple="true" :list="options" label-key="label" value-key="value" placeholder="请选择"
v-model="value2" @change="selectChange" @cancel="cancel" @confirm="confirm"></ld-select>
</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="3">
</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/pagesB/information/index.js'
import contenttext from '../text.vue';
import baseurl from '@/api/baseurl.js'
import {
appPersonal,
} from '@/api/pages/myinformation/myinformation.js';
import {
getSubordinateRegions,
} from '@/api/pagesB/modifyAddress/modifyAddress.js';
import gkcity from "../../components/m-city/m-city.vue";
import {
registerdata
} from '@/api/pages/register/register.js'
export default {
components: {
contenttext,
"m-city": gkcity
},
data() {
return {
params: {
year: true,
month: true,
day: true,
hour: false,
minute: false,
second: false
},
value2: [],
options: [{
value: '1',
label: '高血压'
}, {
value: '2',
label: '高血糖'
}, {
value: '3',
label: '高血脂'
}, {
value: '0',
label: '无'
}],
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: [],
diseaseList: [],
headPictureUrl: '',
birthDate: '',
locationName: '',
sex: '',
sexname: '',
cityCode: '',
},
sex: '',
addresslength: null,
value: {},
}
},
onLoad(options) {
this.areaInfo();
this.baseurl = baseurl
var that = this
this.value = uni.getStorageSync('userinfo');
if (this.value) {
const patientid = this.value.id
appPersonal(patientid).then(Response => {
if (Response.code == 200) {
if (Response.data.sex == 'MALE') {
that.sex = '男';
} else if (Response.data.sex == 'FEMALE') {
that.sex = '女';
}
that.appPersonallist = Response.data
that.value2 = Response.data.diseaseList.map(String)
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.areaName) {
that.address = that.appPersonallist.areaName
}
} else if (Response.code == 9999) {} else {
uni.navigateBack({
delta: 1
})
}
})
} else {}
},
methods: {
confirm(e) {
this.appPersonallist.diseaseList = e.map(Number)
},
// 下拉框多选
selectChange(val) {},
cancel() {},
//性别
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
that.appPersonallist.openid = uni.getStorageSync('openid');
if (that.sex == '男') {
that.appPersonallist.sex = 'MALE';
} else if (that.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.cityCode = uni.getStorageSync('region')
registerdata(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.cityCode = uni.getStorageSync('region')
registerdata(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;
// })
this.list = [{
areaCode: "370500000000",
areaLevel: 2,
areaName: "东营市",
id: 255903,
parentId: 188870,
}, {
areaCode: "371400000000",
areaLevel: 2,
areaName: "德州市",
id: 398888,
parentId: 188870,
}]
},
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) {
// console.log(data,'777')
// that.patientDiseaseInfoList = JSON.parse(data.disease)
// uni.$off('disease')
// })
},
}
</script>
<style lang="scss">
@import "./modify.scss"
</style>