You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

317 lines
6.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="content">
<headerTopsTips></headerTopsTips>
<!-- -->
<uni-nav-bar left-icon="left" title="个人信息" backgroundColor="#e6eafa" @clickLeft="handlegoback" />
<!-- -->
<view class="tops_info">
<view class="cicler">
<image :src="information.avatar" style="width: 100%; height: 100%; " mode="aspectFill"></image>
<view class="positon_bottom" @click="upload_imgs">
+
</view>
</view>
<text style="color:#fff;">ofo</text>
<view class="number_las">
信用分: {{information.creditPoint}} >
</view>
</view>
<view class="item_info">
<text>姓名</text>
<text>{{information.name}}</text>
<view class="bot_line"></view>
</view>
<view class="item_info">
<text>性别</text>
<!-- <hpy-form-select :dataList="hobbyList" text="text" name="value" v-model="formData.hobbySelect"
@change="change" :hideBorder="true" :hideArrow="true">
<text>未设置 > </text>
</hpy-form-select> -->
<!-- <text></text> -->
<picker :range="time_picker" @change="bindTimeChange" :value="check_sex">
<view class="uni-input">{{ time_picker[check_sex] }}</view>
</picker>
<view class="bot_line"></view>
</view>
<view class="item_info">
<text>生日</text>
<text>{{information.birthday}}</text>
<!-- <uni-datetime-picker v-model="single">{{}}</uni-datetime-picker> -->
</view>
<!-- -->
<view class="item_info" style="margin-top: 20rpx;">
<text>绑定的手机号</text>
<text @click="handle_push(1)">{{information.mobile}}</text>
<view class="bot_line"></view>
</view>
<view class="item_info">
<text>修改密码</text>
<text @click="handle_push(2)">></text>
<view class="bot_line"></view>
</view>
<view class="item_info">
<text>是否认证</text>
<text
@click="handle_realNameAuthFlag(information.realNameAuthFlag)">{{information.realNameAuthFlag == 1? '': ''}}</text>
</view>
<!-- -->
<view class="item_info" style="margin-top: 20rpx;">
<text>关于我们</text>
<text> > </text>
</view>
<!-- -->
<view class="botm_setlogin">
<view class="btn_login" @click="handle_goback">退</view>
</view>
</view>
</template>
<script setup>
import headerTopsTips from '@/pages/components/header_tops_tips.vue'
import {
onLoad
} from '@dcloudio/uni-app'
import sheep from '@/sheep';
import {
baseUrl,
apiPath
} from '@/sheep/config';
import {
ref
} from 'vue'
const formData = ref({
hobbySelect: ''
})
const information = ref({})
const hobbyList = ref([{
text: '男',
value: 1
}, {
text: '女',
value: 2
}])
const time_picker = ref(
['男', '女', '未知']
)
const single = ref('')
//
const check_sex = ref(0)
onLoad((option) => {
information.value = JSON.parse(option.information)
check_sex.value = information.value.sex
})
//
function handlegoback() {
uni.navigateBack()
}
//
function change(e) {
console.log(e.index);
console.log(e.value);
console.log(e.data);
}
function handel_sex(data) {
// console.log(data, 'data')
switch (data) {
case 0:
return '男';
case 1:
return '女';
case 2:
return '未知'
}
}
function handle_realNameAuthFlag(data) {
switch (data) {
case 0:
uni.navigateTo({
url: '/pages/index/authentication'
});
break;
case 1:
return uni.showToast({
title: '已认证...',
icon: 'success'
})
}
}
//
function handle_push(val) {
sheep.$router.go('/pages/home/updatepassword', {
date: JSON.stringify(information.value),
type: val
})
}
// 上传头像
function upload_imgs() {
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: function(res) {
let imgs_path = res.tempFilePaths
// console.log(imgs_path,'imgs_path');
// console.log(res,'res');
uni.uploadFile({
url: `${baseUrl + apiPath}/infra/file/upload`,
filePath: imgs_path[0],
name: 'file',
method: 'post',
header: {
'tenant-id': 1,
'Authorization': uni.getStorageSync('token')
},
success: (res) => {
const data_inter = JSON.parse(res.data)
// console.log(data_inter, '上传成功')
let data = {
avatar: data_inter.data
}
handle_update_info(data)
information.value.avatar = data_inter.data
}
})
}
})
}
// 确认修改
function handle_update_info(data) {
// console.log(data,'data')
uni.request({
url: `${baseUrl + apiPath}/member/user/update`,
method: 'PUT',
data,
header: {
'tenant-id': 1,
'Authorization': uni.getStorageSync('token')
},
success: (res) => {
// console.log(res, 'res')
if (res.data.code == 0) {
uni.showToast({
title: '修改成功',
icon: 'success'
})
} else {
uni.showToast({
title: res.data.msg,
icon: 'error'
})
}
},
fail: (error) => {
console.log(error, 'error')
}
});
}
// 选择性别确认
function bindTimeChange(e) {
// console.log('picker发送选择改变携带值为', e.detail)
check_sex.value = e.detail.value
let data = {
sex: parseInt(check_sex.value) + 1
}
handle_update_info(data)
}
// 退出
function handle_goback() {
uni.clearStorageSync();
// uni.removeStorageSync('token')
uni.reLaunch({
url: '/pages/subpackages/login'
})
}
</script>
<style lang="scss" scoped>
.content {
height: 100vh;
background: #eee;
}
.botm_setlogin {
height: 150rpx;
background: #fff;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
padding: 0 20px;
box-sizing: border-box;
display: flex;
align-items: center;
}
.btn_login {
width: 100%;
height: 100rpx;
background: #000;
color: #fff;
font-size: 16px;
line-height: 100rpx;
text-align: center;
}
.tops_info {
height: 300rpx;
background: #555555;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
.cicler {
width: 150rpx;
height: 150rpx;
background: #b5b5b5;
border-radius: 50%;
overflow: hidden;
position: relative;
.positon_bottom {
position: absolute;
bottom: 0;
background: #a8a8a8;
color: #fff;
width: 100%;
line-height: 30px;
font-size: 10px;
text-align: center;
opacity: 0.7;
}
}
.number_las {
width: 230rpx;
line-height: 60rpx;
background: #ffffff;
border-radius: 30rpx;
font-size: 12px;
text-align: center;
}
}
.item_info {
height: 100rpx;
padding: 0 20px;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
background: #fff;
.bot_line {
width: 100%;
height: 2px;
background: #e5e5e5;
position: absolute;
bottom: 0;
left: 20px;
}
}
</style>