|
|
- <template>
- <view class='updateUserInfo'>
- <!--顶部导航栏-->
- <navbar leftClick @leftClick="$utils.navigateBack" title="修改个人信息" />
-
- <!--主页面-->
- <view class="frame">
- <view class="headImage">
- <view style="" class="key">头像</view>
- <button style="" class="value" @chooseavatar="onChooseAvatar" open-type="chooseAvatar">
- <image
- :src="form.headImage" v-if="form.headImage"
- style="width: 100%;height: 100%" mode="aspectFill">
- </image>
- <image src="/static/image/tabbar/6.png" v-else style="width: 100%;height: 100%" mode="aspectFill">
- </image>
- </button>
- </view>
- <view class="item">
- <view class="label">昵称</view>
- <view class="value">
- <input type="nickname" placeholder="请输入昵称" style="text-align: right;" id="nickName"
- v-model="form.nickName" />
- </view>
- </view>
- <!-- <view class="item" @click="sexChange">
- <view class="label">性别</view>
- <view>{{form.sex}}</view>
- </view> -->
- <!-- <view class="item">
- <view class="label">联系方式</view>
- <view class="value">
- <uv-input v-model="form.phone" placeholder="联系方式" border="bottom" clearable></uv-input>
- </view>
- </view> -->
- </view>
-
- <!-- ActionSheet 操作菜单 -->
- <uv-action-sheet ref="actionSheet" :actions="sexList" title="性别" @select="select" @close="close">
- </uv-action-sheet>
-
- <!--确认修改个人信息按钮-->
- <button @click="confirmEditUserInfo" class="bottomBtn">
- 确认修改
- </button>
- </view>
- </template>
-
- <script>
- import {
- mapState,
- } from 'vuex'
- export default {
- computed: {
- ...mapState(['userInfo']),
- },
- data() {
- return {
- form: {
- sex: '',
- nickName: '1',
- phone: '',
- headImage: '',
- },
- // itemUserImage: userInfo.headImage,
- fileList: [],
- sexList: [{
- name: '男',
- value: 1
- },
- {
- name: '女',
- value: 0
- },
- ],
- }
- },
- onLoad() {
- this.form.phone = this.userInfo.phone
- this.form.headImage = this.userInfo.headImage
- this.form.nickName = this.userInfo.nickName
- this.form.sex = this.userInfo.sex
- if (this.userInfo.sex == '' || this.userInfo.sex == null) {
- this.form.sex = '未知'
- }
- },
- methods: {
-
- onChooseAvatar(res) {
- let self = this
- console.log(res.target.avatarUrl, "res.target.avatarUrl");
- self.$Oss.ossUpload(res.target.avatarUrl)
- .then(url => {
- console.log(url, "url");
- self.form.headImage = url
- })
- },
-
- // 确认修改个人信息
- confirmEditUserInfo() {
- let self = this
- uni.createSelectorQuery().in(this)
- .select("#nickName")
- .fields({
- properties: ["value"],
- })
- .exec((res) => {
- const nickName = res?.[0]?.value
- self.form.nickName = nickName
-
- if (self.$utils.verificationAll(self.form, {
- headImage: '请选择头像',
- nickName: '请填写昵称'
- })) {
- return
- }
-
- self.$api('updateInfo', {
- headImg : self.form.headImage,
- nickname : self.form.nickName,
- }, res => {
- if (res.code == 200) {
- uni.redirectTo({
- url: '/pages/index/center'
- })
- }
- })
- })
-
- },
-
- sexChange() {
- this.$refs.actionSheet.open() //打开ActionSheet 操作菜单
- },
-
- // ActionSheet 操作菜单选中
- select(e) {
- console.log('选中该项:', e);
- this.form.sex = e.name
- this.$refs.actionSheet.close() //关闭操作菜单
- },
-
- // ActionSheet 操作菜单关闭
- close() {
- this.$refs.actionSheet.close() //关闭操作菜单
-
- },
- }
- }
- </script>
-
- <style lang="scss" scoped>
- * {
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- }
-
- .updateUserInfo {
- .frame {
- padding: 28rpx 28rpx 0 28rpx;
-
- .headImage {
- display: flex;
- // width: 100vw;
- padding: 20rpx;
-
- .key {
- width: 500rpx;
- display: flex;
- align-items: center;
- }
-
- .value {
- border-radius: 50rpx;
- border: 1px solid red;
- box-sizing: border-box;
- overflow: hidden;
- width: 100rpx;
- height: 100rpx;
- padding: 0;
- }
- }
-
-
- .item {
- display: flex;
- justify-content: space-between;
- // border-bottom: 1px solid #c9c9c9;
- margin-top: 20rpx;
- padding: 20rpx;
-
- .label {
- width: 50%;
- }
-
- .value {
- width: 50%;
- text-align: right;
- }
- }
- }
- }
-
- /deep/ .input__content {
- /deep/.uv-input__content__field-wrapper {
- border: 1px solid red;
-
- input {
- text-align: right;
- }
- }
- }
-
- /deep/ .uv-input__content__field-wrapper__field {
- text-align: right;
- }
- .bottomBtn {
- position: fixed;
- bottom: 5%;
- left: 10%;
- width: 80%;
- height: 80rpx;
- text-align: center;
- color: #ffffff;
- background: $uni-color;
- display: flex;
- justify-content: center;
- align-items: center;
- font-size: 30rpx;
- }
- </style>
|