258 lines
6.0 KiB
Vue
258 lines
6.0 KiB
Vue
<template>
|
|
<view class="container">
|
|
<div class="userinfo">
|
|
<div class="icon" @click="goBack">
|
|
<uni-icons type="back" size="25" color="white"></uni-icons>
|
|
</div>
|
|
<div class="Header">
|
|
<span>个人信息</span>
|
|
</div>
|
|
</div>
|
|
|
|
<uni-list class="info">
|
|
<uni-list-item
|
|
title="头像"
|
|
show-arrow="true"
|
|
clickable
|
|
class="listContainer"
|
|
@click="showActionSheet(default_src)"
|
|
>
|
|
<template v-slot:footer >
|
|
<image class="slot-image" :src="default_src" mode="aspectFill"></image>
|
|
</template>
|
|
</uni-list-item>
|
|
<uni-list-item
|
|
v-for="(item, index) in userListShow"
|
|
:key="index"
|
|
clickable
|
|
:title="item.name"
|
|
class="listContainer"
|
|
@click="modifyValue(item)"
|
|
>
|
|
<template v-slot:footer >
|
|
<div class="item" @click.stop="changeItemInfo(item,index)">
|
|
<text >{{item.info}}</text>
|
|
</div>
|
|
</template>
|
|
</uni-list-item>
|
|
</uni-list>
|
|
<button type="primary" class="button" @click="save">保存</button>
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
<script>
|
|
|
|
let modify = false
|
|
|
|
//访问数据
|
|
const userList = uni.getStorageSync('value')
|
|
let userListShow = [
|
|
{name: '手机号码', info: userList.phone},
|
|
]
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
userList: userList,
|
|
userListShow:userListShow,
|
|
modify: modify,
|
|
default_src: uni.getStorageSync('avatar'),
|
|
fileId: '',
|
|
phone: userList.phone,
|
|
reset: false,
|
|
}
|
|
},
|
|
mounted() { //挂载时重新获取一次Storage数据
|
|
this.userList = uni.getStorageSync('value')
|
|
this.userListShow[0].info = this.userList.phone
|
|
},
|
|
methods: {
|
|
goBack(){
|
|
uni.navigateBack()
|
|
},
|
|
showActionSheet(default_src){ //修改头像
|
|
uni.showActionSheet({
|
|
itemList: ['拍照/上传照片', '恢复默认头像'],
|
|
success: (res) => {
|
|
console.log('选择了第' + (res.tapIndex + 1) + '个选项');
|
|
if (res.tapIndex === 0) { //拍照上传照片
|
|
uni.chooseImage({
|
|
count: 1,
|
|
sizeType: ['origin','compressed'],
|
|
sourceType: ['camera', 'album'],
|
|
success: (res) => {
|
|
const tempFilePaths = res.tempFilePaths;
|
|
console.log('--------拍照上传照片--------',res);
|
|
this.default_src = tempFilePaths[0]
|
|
uni.uploadFile({
|
|
url: uni.$http.baseUrl+'/gunshiApp/xfflood/my/info/file/upload/singleSimple',
|
|
fileType: 'image',
|
|
filePath: tempFilePaths[0],
|
|
name: 'file',
|
|
success: (res) => {
|
|
this.fileId = JSON.parse(res.data).data.fileId
|
|
},
|
|
})
|
|
|
|
}
|
|
})
|
|
} else if(res.tapIndex === 1) { //恢复默认头像
|
|
console.log('click');
|
|
this.reset = true
|
|
this.default_src = '../../static/tabs/touxiang.png'
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
console.log('弹窗取消');
|
|
}
|
|
});
|
|
},
|
|
modifyValue(item){
|
|
console.log(item);
|
|
|
|
},
|
|
changeItemInfo(item,index){ //修改电话
|
|
uni.showModal({
|
|
title:"修改"+item.name,
|
|
editable:true,
|
|
placeholderText:item.info,
|
|
confirmText:"确认",
|
|
cancelText:"取消",
|
|
success: (res) => {
|
|
const phoneReg = /^[1][3-9]\d{9}$/;
|
|
if (res.confirm){
|
|
if (phoneReg.test(res.content) ){
|
|
this.userListShow[index].info = res.content
|
|
this.phone = res.content
|
|
uni.showToast({
|
|
title:"修改成功,请保存",
|
|
icon: "none",
|
|
duration: 1000,
|
|
})
|
|
} else {
|
|
uni.showToast({
|
|
title:"请输入正确手机号码",
|
|
icon: "none",
|
|
duration: 1000,
|
|
})
|
|
}
|
|
}
|
|
|
|
},
|
|
fail: (err) => {
|
|
console.log('取消');
|
|
}
|
|
})
|
|
},
|
|
save(){
|
|
if (this.fileId == ''){ //图片无修改或重置时
|
|
if (this.reset) { //重置头像
|
|
//调接口清空返回图片路径的data
|
|
uni.$http.get('/gunshiApp/xfflood/my/info/recover').then(res=>{
|
|
uni.setStorageSync('avatar','../../static/tabs/touxiang.png')
|
|
})
|
|
console.log('重置头像');
|
|
}
|
|
|
|
let params = {
|
|
"phone": this.phone,
|
|
}
|
|
|
|
uni.$http.post('/gunshiApp/xfflood/my/info/update',params).then(res=>{
|
|
console.log('-----修改图片1-----',res);
|
|
let new_userList = uni.getStorageSync('value')
|
|
new_userList.phone = this.phone
|
|
uni.setStorageSync('value', new_userList)
|
|
uni.reLaunch({
|
|
url:'/pages/mypage/mypage'
|
|
})
|
|
},err=>{
|
|
console.log('----err----',err);
|
|
})
|
|
|
|
} else { //修改图片后
|
|
let params = {
|
|
"phone": this.phone,
|
|
"attach": {
|
|
"fileId": this.fileId,
|
|
},
|
|
}
|
|
uni.$http.post('/gunshiApp/xfflood/my/info/update',params).then(res=>{
|
|
console.log('-----修改图片2-----',res);
|
|
if (res.data.code == 200){
|
|
console.log('---修改图片3---',res);
|
|
let url = '/gunshiApp/xfflood/bzProjectManipulationRecord/file/get/'+this.fileId
|
|
uni.$http.get(url).then(res=>{
|
|
uni.setStorageSync('avatar','http://223.75.53.141:9102/test.by-lyf.tmp'+res.data.data.filePath)
|
|
console.log('-----modifiedAvatar------',uni.getStorageSync('avatar'));
|
|
})
|
|
uni.reLaunch({
|
|
url:'/pages/mypage/mypage'
|
|
})
|
|
|
|
}
|
|
})
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.userinfo{
|
|
border-radius: 5px;
|
|
display: flex;
|
|
flex-direction: row;
|
|
margin-top: 5vh;
|
|
margin-left: 2vw;
|
|
margin-bottom: 2vh;
|
|
align-items: center;
|
|
width: 95%;
|
|
height: 6vh;
|
|
background-color: #007afd;
|
|
|
|
}
|
|
.icon{
|
|
width: 6vw;
|
|
height: 6vh;
|
|
align-items: center;
|
|
line-height: 6vh;
|
|
}
|
|
.Header{
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex: 0.95;
|
|
justify-content: center;
|
|
color: white;
|
|
font-size: 20px;
|
|
}
|
|
.info{
|
|
margin: 1vh;
|
|
|
|
}
|
|
.listContainer{
|
|
height: 6vh;
|
|
line-height: 8vh;
|
|
}
|
|
.button{
|
|
margin-top: 60vh;
|
|
border-radius: 10px;
|
|
display: flex;
|
|
flex-direction: column-reverse;
|
|
width: 92%;
|
|
height: 6vh;
|
|
font-size: 20px;
|
|
color: white;
|
|
background-color: #007afd;
|
|
}
|
|
.slot-image{
|
|
margin-top: 12px;
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 50%;
|
|
}
|
|
</style>
|