video_app/pages/me/userinfo.vue

587 lines
15 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>
<view class="userMain">
<view class="userMain-item u-border-bottom">
<view>头像</view>
<view>
<!-- #ifdef MP-WEIXIN -->
<button open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<image style="width: 111rpx;height: 111rpx;border-radius: 50%"
:src="headImg?headImg:'../../static/images/logo.png'"></image>
</button>
<!-- #endif -->
<!-- #ifndef MP-WEIXIN -->
<image :src="headImg?headImg:'../../static/images/logo.png'" mode="" @click="uploadImg"
style="width: 111rpx;height: 111rpx;border-radius: 50%;"></image>
<!-- #endif -->
</view>
</view>
<view class="userMain-item item-padding u-border-bottom">
<view>用户名</view>
<view>
<view class="cu-form-group">
<input type="nickname" v-model="userName" placeholder="请输入用户名" />
</view>
</view>
</view>
<!-- <view class="userMain-item item-padding">
<view >姓名</view>
<view class="cu-form-group">
<input v-model="realName" placeholder="请填写您的真实姓名" />
</view>
</view> -->
<view class="userMain-item item-padding u-border-bottom">
<view>手机</view>
<view>
<!-- #ifndef MP-WEIXIN -->
<view class="cu-form-group">
<input v-if="phone" disabled v-model="phone" placeholder="请输入联系电话" />
</view>
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<view class="cu-form-group">
<input v-if="phone" disabled v-model="phone" placeholder="请输入联系电话" />
<button v-else
style="background-color: #ff7581 !important;color: #FFFFFF;font-size: 22rpx;padding: 10rpx 20rpx;"
class="bottom" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
授权手机号
</button>
</view>
<!-- #endif -->
</view>
</view>
<!-- <view class="userMain-item item-padding" @click="goMyAddress">
<view >地址管理</view>
<view>
<view class="cu-form-group" >
<image src="../static/right.png" style="width: 12rpx; height: 19rpx;margin-left: 10rpx;" mode=""></image>
</view>
</view>
</view> -->
</view>
<view class="footer-btn">
<view class="userMain-btn" @click="messagebtn()">保存</view>
</view>
</view>
</template>
<script>
import configdata from '../../common/config.js';
export default {
data() {
return {
phone: '',
headImg: '../../static/images/logo.png',
userName: '',
nickName: '',
userId: '',
realName: '',
weChatId: "",
password: '',
platform: '',
createTime: '',
money: '',
jiFen: '',
status: '',
zhiFuBao: '',
zhiFuBaoName: ''
};
},
onLoad(e) {
this.getUserInfo()
this.cccccccccx(1212, 5)
this.asdasdascccc(1212.5)
this.vvvvasd(1212, 5)
this.addaasas(1212, 5)
this.asvzxvzsda(1212, 5)
},
methods: {
//乘法函数,用来得到精确的乘法结果
//说明javascript的乘法结果会有误差在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用mul(arg1,arg2)
//返回值arg1乘以arg2的精确结果
//
vvvvasd(arg1, arg2) {
var m = 0,
s1 = arg1.toString(),
s2 = arg2.toString();
try {
m += s1.split(".")[1].length;
} catch (e) {
m = 0;
}
try {
m += s2.split(".")[1].length;
} catch (e) {
m = m || 0;
}
return (
(Number(s1.replace(".", "")) * Number(s2.replace(".", ""))) /
Math.pow(10, m)
);
}, //除法函数,用来得到精确的除法结果
//说明javascript的除法结果会有误差在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。
//调用div(arg1,arg2)
//返回值arg1除以arg2的精确结果
cccccccccx(arg1, arg2) {
var r1, r2, m, n;
try {
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2));
//动态控制精度长度
n = r1 >= r2 ? r1 : r2;
return ((arg1 * m - arg2 * m) / m).toFixed(n);
},
addaasas(arg1, arg2) {
var r1, r2, m, n;
try {
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2));
n = r1 >= r2 ? r1 : r2;
return ((arg1 * m + arg2 * m) / m).toFixed(n);
},
asvzxvzsda(arg1, arg2) {
var t1 = 0,
t2 = 0,
r1,
r2;
try {
t1 = arg1.toString().split(".")[1].length;
} catch (e) {
t1 = 0;
}
try {
t2 = arg2.toString().split(".")[1].length;
} catch (e) {
t2 = 0;
}
r1 = Number(arg1.toString().replace(".", ""));
r2 = Number(arg2.toString().replace(".", ""));
},
/**
* 保留小数n位不进行四舍五入
* num你传递过来的数字,
* decimal你保留的几位,默认保留小数后两位
* isInt 是否保留0。如12.20 是否保留0
*/
asdasdascccc(num, decimal = 2, isInt = false) {
num = num.toFixed(3).toString();
const index = num.indexOf(".");
if (index !== -1) {
num = num.substring(0, decimal + index + 1);
} else {
num = num.substring(0);
}
//截取后保留两位小数
if (isInt) {
return parseFloat(num);
} else {
return parseFloat(num).toFixed(decimal);
}
},
//乘法函数,用来得到精确的乘法结果
//说明javascript的乘法结果会有误差在两个浮点数相乘的时候会比较明显。这个函数返回较为精确的乘法结果。
//调用mul(arg1,arg2)
//返回值arg1乘以arg2的精确结果
getMyPhone(code) {
let data = {
code: code
}
this.$Request.postT('/app/Login/wxPhone', data).then(res => {
if (res.code === 0) {
this.phone = res.data.phone_info.purePhoneNumber;
} else {
uni.showToast({
title: '获取手机号失败',
icon: 'none'
})
}
})
},
//获取小程序手机号授权
getPhoneNumber: function(e) {
console.log(e.detail, '1111111111')
// #ifdef MP-TOUTIAO
if (e.detail.encryptedData && e.detail.iv) {
console.log('用户同意提供手机号');
// console.log('用户拒绝提供手机号');
} else {
uni.showToast({
title: '获取手机号失败',
icon: 'none'
})
// this.setPhoneByInsert(e.detail.encryptedData, e.detail.iv);
}
// #endif
// #ifdef MP-WEIXIN
if (e.detail.code) {
this.getMyPhone(e.detail.code)
} else {
uni.showToast({
title: '获取手机号失败',
icon: 'none'
})
}
// if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
// console.log('用户拒绝提供手机号');
// } else {
// console.log('用户同意提供手机号');
// this.setPhoneByInsert(e.detail.encryptedData, e.detail.iv);
// }
// #endif
// #ifdef MP-KUAISHOU
// #endif
},
goMyAddress() {
uni.navigateTo({
url: '../jifen/myaddress'
});
},
//微信填写能力获取头像
onChooseAvatar(e) {
console.log(e.detail.avatarUrl)
let that = this;
let url = ''
let token = uni.getStorageSync('token');
uni.showLoading({
title: '上传中...'
});
uni.uploadFile({
url: configdata.APIHOST + '/alioss/upload',
// url: 'https://jiaoyu.xianmxkj.com/sqx_fast/alioss/upload', //仅为示例,非真实的接口地址
filePath: e.detail.avatarUrl,
// filePath: res.tempFilePaths[0],
header: {
token: token
},
name: 'file',
success: uploadFileRes => {
url = JSON.parse(uploadFileRes.data);
that.headImg = url.data
uni.hideLoading();
}
});
},
uploadImg() {
let token = uni.getStorageSync('token')
if (!token) {
this.goLoginInfo();
return;
}
let that = this;
var url = null;
uni.showActionSheet({
// itemList按钮的文字接受的是数组
itemList: ["查看头像", "从相册选择图片"],
success(e) {
var index = e.tapIndex
if (index === 0) {
// 用户点击了预览当前图片
// 可以自己实现当前头像链接的读取
let url = that.headImg;
let arr = []
arr.push(url)
uni.previewImage({
// 预览功能图片也必须是数组的
urls: arr
})
} else if (index === 1) {
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success: function(res) {
uni.showLoading({
title: '上传中...'
});
let token = uni.getStorageSync('token');
let userId = uni.getStorageSync('userId');
uni.uploadFile({
url: configdata.APIHOST + '/alioss/upload',
// url: 'https://jiaoyu.xianmxkj.com/sqx_fast/alioss/upload', //仅为示例,非真实的接口地址
filePath: res.tempFilePaths[0],
name: 'file',
success: uploadFileRes => {
url = JSON.parse(uploadFileRes.data);
console.log(url)
that.headImg = url.data
uni.hideLoading();
// that.$u.post('/app/user/updateUsers',{
// headImg: url.data
// },{
// header: "application/json"
// }).then(res => {
// uni.showToast({
// title: '更新成功',
// icon: "none"
// })
// that.getUserInfo();
// })
// uni.request({
// url: 'https://jiaoyu.xianmxkj.com/sqx_fast/app/user/updateUsers',
// data: data,
// method: "POST",
// header: {
// "content-type": header,
// "token": token
// },
// success: function (result) {
// console.error(result);
// succ.call(self, result.data)
// },
// fail: function (e) {
// error.call(self, e)
// }
// })
// that.$Request.postJson('/user/update',{
// userId: userId,
// headImg:url.data
// }).then(res => {
// uni.hideLoading();
// if (res.status === 0) {
// that.$queue.showToast("更新成功");
// that.getUserInfo(userId);
// }
// });
}
});
}
});
}
}
})
},
config: function(name) {
var info = null;
if (name) {
var name2 = name.split("."); //字符分割
if (name2.length > 1) {
info = configdata[name2[0]][name2[1]] || null;
} else {
info = configdata[name] || null;
}
if (info == null) {
let web_config = cache.get("web_config");
if (web_config) {
if (name2.length > 1) {
info = web_config[name2[0]][name2[1]] || null;
} else {
info = web_config[name] || null;
}
}
}
}
return info;
},
getUserInfo() {
let userId = uni.getStorageSync('userId')
this.$u.api.userinfo().then(res => {
if (res.code === 0) {
this.userName = res.data.userName;
this.phone = res.data.phone;
this.phones = res.data.phone
this.headImg = res.data.avatar;
}
})
// this.$Request.getT('/user/find?id=' + userId).then(res => {
// if (res.status === 0) {
// this.userName = res.data.userName;
// this.phone = res.data.phone;
// this.headImg = res.data.headImg;
// this.realName = res.data.realName;
// this.nickName = res.data.nickName;
// this.userId = res.data.userId;
// this.password = res.data.password;
// this.createTime = res.data.createTime;
// this.money = res.data.money;
// this.platform = res.data.platform;
// this.jiFen = res.data.jiFen;
// this.weChatId=res.data.weChatId;
// this.status = res.data.status;
// this.zhiFuBao = res.data.zhiFuBao;
// this.zhiFuBaoName = res.data.zhiFuBaoName;
// } else {
// uni.showModal({
// showCancel: false,
// title: '未知错误',
// content: res.msg
// });
// this.$queue.logout();
// }
// uni.hideLoading();
// });
},
//根据正则验证手机号是否正确包括校验长度
checkPhone(phone) {
return /^1[3456789]\d{9}$/.test(phone);
},
// 保存
messagebtn() {
if (!this.userName) {
uni.showToast({
title: "用户名不能为空",
icon: "none"
})
return
}
// #ifdef MP-WEIXIN
if (!this.phone) {
uni.showToast({
title: "手机号不能空",
icon: "none"
})
return
}
if (this.checkPhone(this.phone) == false) {
uni.showToast({
title: "手机号格式不正确",
icon: "none"
})
return
}
// #endif
uni.showModal({
title: '温馨提示',
content: '确定保存信息',
confirmColor: '#ff7581',
success: e => {
if (e.confirm) {
this.$u.post("/app/user/updateUsers", {
userName: this.userName,
avatar: this.headImg,
phone: this.phone,
}).then(res => {
if (res.code === 0) {
uni.showToast({
title: '保存成功',
icon: "none"
})
setTimeout(function() {
uni.navigateBack()
}, 1000)
} else {
uni.showToast({
title: res.msg,
icon: "none"
})
}
});
}
}
});
},
// userphone(){
// uni.navigateTo({
// url:'/pages/my/userphone'
// })
// }
}
};
</script>
<style>
page {
background: #FFFFFF;
}
button::after {
border: none;
background-color: none;
}
button {
position: relative;
display: block;
margin-left: auto;
margin-right: auto;
padding-left: 0px;
padding-right: 0px;
box-sizing: border-box;
text-decoration: none;
line-height: 1.35;
overflow: hidden;
color: #666666;
/* background-color: #fff; */
background-color: rgba(255, 255, 255, 0) !important;
width: 100%;
height: 100%;
}
.userMain {
background: #FFFFFF;
}
.userMain-item {
display: flex;
align-items: center;
margin-left: 40rpx;
padding: 30rpx 40rpx 30rpx 0;
justify-content: space-between;
/* border-bottom: 2rpx solid #f2f2f2; */
}
.userMain-item.item-padding {
padding: 0 40rpx 0 0;
}
.cu-form-group {
padding: 0;
background: #FFFFFF;
text-align: right;
}
.cu-form-group input {
background: #FFFFFF;
font-size: 28rpx;
color: #333333;
}
.footer-btn {
margin-top: 150rpx;
}
.footer-btn .userMain-btn {
color: #FFFFFF;
background: #ff7581;
text-align: center;
width: 450rpx;
height: 80rpx;
font-size: 28rpx;
line-height: 80rpx;
margin: 0 auto;
border-radius: 40rpx;
}
</style>