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.
217 lines
5.0 KiB
217 lines
5.0 KiB
<template>
|
|
<view class="container">
|
|
<view class="list-cell b-b m-t" @click="upImg" :hover-stay-time="50" style="display: flex;align-items: center;">
|
|
<text class="cell-tit">我的头像</text>
|
|
<view class=""
|
|
style="display: flex;align-items: center;justify-content: center;height: 80upx;line-height: 80upx;">
|
|
<image v-if="userInfos && userInfos.icon" :src="userInfos.icon"
|
|
style="border-radius: 50%;width: 100upx;height: 100upx;"></image>
|
|
<text class="cell-more yticon icon-you"></text>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="list-cell b-b m-t" @click="inputShowModal('nickname')" hover-class="cell-hover"
|
|
:hover-stay-time="50">
|
|
<text class="cell-tit" v-if="userInfos && userInfos.nickname">修改昵称:{{userInfos.nickname|| ''}}</text>
|
|
<text class="cell-more yticon icon-you"></text>
|
|
</view>
|
|
<view class="list-cell b-b" @click="genderShowModal" hover-class="cell-hover" :hover-stay-time="50">
|
|
<text class="cell-tit">修改性别</text>
|
|
<text class="cell-more yticon icon-you"></text>
|
|
</view>
|
|
|
|
<neil-modal :show="inputShow" @close="cancel" title="编辑" @cancel="cancel" @confirm="confirm">
|
|
<input v-model="inputContent" style="margin:20upx" placeholder="请输入..." />
|
|
</neil-modal>
|
|
<neil-modal :show="genderShow" @close="cancel" title="选择性别" @cancel="cancel" @confirm="confirmGender">
|
|
<view>
|
|
<radio-group style="text-align:center" @change="genderRadioChange">
|
|
<label v-for="(item, index) in genders" :key="item.value">
|
|
<radio :value="item.value" :checked="index === current" style="margin:10upx" />
|
|
{{ item.name }}
|
|
</label>
|
|
</radio-group>
|
|
</view>
|
|
</neil-modal>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import mallplusCopyright from '@/components/mall-copyright/mallplusCopyright.vue';
|
|
import Api from '@/common/api';
|
|
import neilModal from '@/components/neil-modal.vue';
|
|
import {
|
|
mapState,
|
|
mapMutations
|
|
} from 'vuex';
|
|
export default {
|
|
components: {
|
|
neilModal
|
|
},
|
|
data() {
|
|
return {
|
|
inputShow: false,
|
|
feild: undefined,
|
|
inputContent: '',
|
|
genderShow: false,
|
|
gender: undefined,
|
|
genders: [{
|
|
name: '保密',
|
|
value: 0
|
|
}, {
|
|
name: '男',
|
|
value: 1
|
|
}, {
|
|
name: '女',
|
|
value: 2
|
|
}],
|
|
current: 0,
|
|
userInfos: {},
|
|
sourceTypeIndex: 0,
|
|
sourceType: ['拍照', '相册', '拍照或相册'],
|
|
sizeTypeIndex: 0,
|
|
sizeType: ['压缩', '原图', '压缩或原图'],
|
|
};
|
|
},
|
|
async onShow() {
|
|
let params = {};
|
|
let data = await Api.apiCall('get', Api.index.userSampleInfo, params);
|
|
this.userInfos = data;
|
|
console.log(this.userInfos);
|
|
},
|
|
async onLoad() {
|
|
let params = {};
|
|
let data = await Api.apiCall('get', Api.index.userSampleInfo, params);
|
|
this.userInfos = data;
|
|
console.log(this.userInfos);
|
|
},
|
|
methods: {
|
|
upImg() {
|
|
this.$otherApi.uploadFiles(res => {
|
|
if (res.code == 200) {
|
|
this.userInfos.icon = res.data;
|
|
let obj = {
|
|
id: 1,
|
|
icon: res.data
|
|
};
|
|
Api.apiCall('post', Api.member.updateMember, obj);
|
|
that.$api.msg('修改成功');
|
|
} else {
|
|
this.$common.errorToShow(res.msg)
|
|
}
|
|
})
|
|
|
|
},
|
|
cancel() {
|
|
this.inputShow = false;
|
|
this.genderShow = false;
|
|
},
|
|
inputShowModal(feild) {
|
|
this.feild = feild;
|
|
this.inputShow = true;
|
|
this.inputContent = '';
|
|
},
|
|
genderShowModal() {
|
|
this.genderShow = true;
|
|
this.gender = undefined;
|
|
},
|
|
confirm() {
|
|
const that = this;
|
|
if (!that.inputContent) {
|
|
that.$api.msg('输入不能为空');
|
|
return;
|
|
}
|
|
let obj = {
|
|
id: 1
|
|
};
|
|
obj[that.feild] = that.inputContent;
|
|
Api.apiCall('post', Api.member.updateMember, obj);
|
|
that.$api.msg('修改成功');
|
|
that.userInfos[that.feild] = that.inputContent
|
|
|
|
},
|
|
genderRadioChange(e) {
|
|
this.gender = parseInt(e.detail.value);
|
|
},
|
|
confirmGender() {
|
|
const that = this;
|
|
if (that.gender === undefined) {
|
|
that.$api.msg('请选择性别');
|
|
return;
|
|
}
|
|
let obj = {
|
|
id: 1,
|
|
gender: that.gender
|
|
};
|
|
Api.apiCall('post', Api.member.updateMember, obj);
|
|
that.$api.msg('修改成功');
|
|
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
page {
|
|
background: $page-color-base;
|
|
}
|
|
|
|
page {
|
|
background: $page-color-base;
|
|
}
|
|
|
|
.list-cell {
|
|
display: flex;
|
|
align-items: baseline;
|
|
padding: 20upx;
|
|
line-height: 60upx;
|
|
position: relative;
|
|
background: #fff;
|
|
justify-content: center;
|
|
|
|
&.log-out-btn {
|
|
margin-top: 40upx;
|
|
|
|
.cell-tit {
|
|
color: $uni-color-primary;
|
|
text-align: center;
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
&.cell-hover {
|
|
background: #fafafa;
|
|
}
|
|
|
|
&.b-b:after {
|
|
left: 30upx;
|
|
}
|
|
|
|
&.m-t {
|
|
margin-top: 16upx;
|
|
}
|
|
|
|
.cell-more {
|
|
align-self: baseline;
|
|
font-size: $font-lg;
|
|
color: $font-color-light;
|
|
margin-left: 10upx;
|
|
}
|
|
|
|
.cell-tit {
|
|
flex: 1;
|
|
font-size: $font-base + 2upx;
|
|
color: $font-color-dark;
|
|
margin-right: 10upx;
|
|
}
|
|
|
|
.cell-tip {
|
|
font-size: $font-base;
|
|
color: $font-color-light;
|
|
}
|
|
|
|
switch {
|
|
transform: translateX(16upx) scale(0.84);
|
|
}
|
|
}
|
|
</style>
|
|
|