587 lines
15 KiB
Vue
587 lines
15 KiB
Vue
<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> |