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

165 lines
5.8 KiB
Vue

1 year ago
<template>
<!-- pages/changeAvatar/index.wxml -->
<view class="container" hover-class="none" :hover-stop-propagation="false">
<!-- <image class="" src="{{temporaryImg || userInfo.imgSrc}}" mode="" lazy-load="false" binderror="" bindload=""></image> -->
<block v-if="temporaryImg || (userInfo.imgSrc != '' && userInfo.imgSrc != null && userInfo.imgSrc != 'null')">
<image :src="temporaryImg || userInfo.imgSrc" style="" class="show-image" mode="aspectFill"></image>
</block>
<block v-else>
<image style="" src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/defaultAva.svg" class="show-image" mode="aspectFill"></image>
</block>
<view v-if="isSure" class="display-flex btnBox" hover-class="none" :hover-stop-propagation="false">
<view class="weui-btn_primary fw500 mr16" @tap="cancelChoice" aria-role="button">取消</view>
<view class="weui-btn_primary fw500 ysd-basebg-color" hover-class="thover" @tap="changeUserImgsrc" style="border: 1px solid var(--color-ysd)" aria-role="button">
确定
</view>
</view>
<!-- bindtap='chooseImage' -->
<button v-else open-type="chooseAvatar" style="" @chooseavatar="choiceAvatar" class="change weui-btn_primary fw500 mt32" aria-role="button">更换头像</button>
</view>
</template>
<script>
// pages/changeAvatar/index.js
let app = getApp();
export default {
data() {
return {
files: [],
userInfo: {
imgSrc: ''
},
temporaryImg: '',
isSure: false
};
}
/**
* 生命周期函数--监听页面加载
*/,
onLoad(options) {},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({
userInfo: app.globalData.user
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
methods: {
/**
* 用户点击右上角分享
*/
onShareAppMessage1() {},
/**
* 选择临时图片
*
*
*/
chooseImage() {
const that = this;
uni.chooseImage({
sizeType: ['original', 'compressed'],
// 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'],
// 可以指定来源是相册还是相机,默认二者都有
success(res) {
// 返回选定照片的本地文件路径列表tempFilePath可以作为img标签的src属性显示图片
console.log(res);
that.setData({
files: that.files.concat(res.tempFilePaths),
temporaryImg: res.tempFilePaths[0],
isSure: true
});
}
});
},
changeUserImgsrc: function () {
var that = this;
// wx.chooseImage({
// count: 1, // 默认9
// sizeType: ["original", "compressed"], // 可以指定是原图还是压缩图,默认二者都有
// sourceType: ["album", "camera"], // 可以指定来源是相册还是相机,默认二者都有
// success: function (res) {
// // 返回选定照片的本地文件路径列表tempFilePath可以作为img标签的src属性显示图片
// var tempFilePaths = res.tempFilePaths;
// // var formData = {'userId': app.globalData.userId};
// },
// });
uni.uploadFile({
url: app.globalData.ip + '/user/changeUserImgsrc',
filePath: that.temporaryImg,
name: 'uploadFile',
header: app.globalData.headers2,
// formData: formData, // HTTP 请求中其他额外的 form data
success: function (res1) {
console.log(res1);
if (res1.statusCode == 200) {
var result = JSON.parse(res1.data);
if (result.status == 200) {
app.globalData.user.imgSrc = result.data.url;
app.globalData.showTips(that, '更改成功');
setTimeout(() => {
that.setData({
userInfo: app.globalData.user,
isSure: false
});
uni.navigateBack({
delta: 1
});
}, 1000);
} else {
app.globalData.showTips(that, result.msg);
}
} else if (res.data.status == 9999) {
app.globalData.dialogNotLogin();
}
},
fail: function (res2) {}
});
},
cancelChoice() {
this.setData({
isSure: false,
temporaryImg: ''
});
},
choiceAvatar(e) {
console.log(e);
const { avatarUrl } = e.detail;
this.setData({
temporaryImg: avatarUrl,
isSure: true
});
}
}
};
</script>
<style>
@import './index.css';
</style>