From 2d43a1df3f5ba42710e6d21c27d1e13bdb8dfd56 Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期一, 24 三月 2025 09:23:08 +0800 Subject: [PATCH] - --- src/pages/mine/mine.vue | 200 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 179 insertions(+), 21 deletions(-) diff --git a/src/pages/mine/mine.vue b/src/pages/mine/mine.vue index b8e2ca1..d62e102 100644 --- a/src/pages/mine/mine.vue +++ b/src/pages/mine/mine.vue @@ -1,42 +1,195 @@ <template> <view class=""> <view class="content chuany-flex chuany-align-end chuany-justify-center"> - <up-avatar src="/static/avatar.jpg" shape="circle" size='80'></up-avatar> + <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"> + <!-- <image class="avatar" src="{{avatarUrl}}"></image> --> + <up-avatar :src="userInfo.avatar" shape="circle" size='80'></up-avatar> + </button> + </view> - <fui-list> - <fui-list-cell arrow> - <view class="fui-list__item"> - <text>濮撳悕</text> - <text class="fui-text__explain">鏉庝附</text> - </view> - </fui-list-cell> - <fui-list-cell arrow> - <view class="fui-list__item"> - <text>鎵嬫満鍙�</text> - <text class="fui-text__explain">13215465785</text> - </view> - </fui-list-cell> - <fui-list-cell arrow @click="goApply"> - <text>鐢宠鎺ュ崟</text> - </fui-list-cell> - </fui-list> + <up-cell title="鏄电О" :border="false"> + <template #value> + <up-form labelPosition="left" :model="userInfo" ref="formRef" labelWidth='90' v-if="showEdit"> + <up-form-item prop="enterpriseInfo.businessLicense" ref="item1"> + <up-input v-model="userInfo.nickname" type="nickname" @blur="blurNickName" border="none" + placeholder="璇疯緭鍏ユ樀绉�" :readonly='!showEdit'> + <template #suffix> + <up-button @tap="saveUserNikename" text="淇濆瓨" type="success" form-type="submit" + size="mini"></up-button> + </template> + <!-- <template #suffix v-else> + <up-icon name="edit-pen" @click='isShow'></up-icon> + </template> --> + </up-input> + + </up-form-item> + </up-form> + <text v-else>{{userInfo.nickname}}</text> + </template> + <template #right-icon v-if='!showEdit'> + <up-icon name="edit-pen" @click='isShow'></up-icon> + </template> + </up-cell> + <up-cell title="鎵嬫満鍙�" :value="userInfo.phone" :border="false"></up-cell> + <!-- <up-cell @click="goApply" title="鐢宠鎺ュ崟" isLink :border="false"></up-cell> --> + <!-- <view class="tabbtns"> + <up-button color='#fece01' class="text-69" text="淇濆瓨" @click=''></up-button> + </view> --> </view> </template> <script setup> - import {ref} from 'vue'; + import { + apiBaseUrl + } from '@/common/setting/constVarsHelper.js'; + import { + onLoad, + onShow + } from "@dcloudio/uni-app"; + import { + ref, + reactive, + getCurrentInstance, + toRefs, + computed + } from 'vue'; + const { + $upload, + $api, + $db, + $util + } = getCurrentInstance().appContext.config.globalProperties + import { + useStore + } from 'vuex' + const store = useStore() + onLoad(() => { + // getUser() + }) + onShow(() => { + // getUser() + }) + // let userInfo = reactive({ + // nickname: '', + // phone: '', + // userWorker: false + // }) + let userInfo = computed(() => store.getters.userInfo || {}) + let showEdit = ref(false) // let src = "http://pic2.sc.chinaz.com/Files/pic/pic9/202002/hpic2119_s.jpg" - const goApply = ()=>{ + const goApply = () => { uni.navigateTo({ url: '/pages/mine/apply' }); + } + const isShow = () => { + showEdit.value = true + } + const onChooseAvatar = (e) => { + const { + avatarUrl + } = e.detail + uploadFile(avatarUrl) + } + const uploadFile = (val) => { + uni.showLoading(); + let userToken = $db.get("userToken"); + uni.uploadFile({ + url: apiBaseUrl + '/api/UpFile/UpdateFile', + filePath: val, + fileType: 'image', + name: 'file', + header: { + 'Accept': 'application/json', + 'Content-Type': 'multipart/form-data', + 'Authorization': 'Bearer ' + userToken + }, + formData: { + 'method': 'images.upload', + 'upfile': val + }, + success: (uploadFileRes) => { + + let res = JSON.parse(uploadFileRes.data); + if (res.code == 1) { + let obj = { + Avatar: res.data + } + $api.saveUser(obj).then(red => { + if (red.code == 1) { + $util.showToast({ + title: "澶村儚淇濆瓨鎴愬姛锛�", + icon: "success" + }) + store.dispatch('getUserInfo') + } else { + this.$util.showToast({ + title: red.error + }) + } + }) + } else { + this.$util.showToast({ + title: res.error + }) + } + + }, + fail: (error) => { + console.log("浜や簰澶辫触"); + console.log(error); + if (error && error.response) { + $upload.showError(error.response); + } + }, + complete: () => { + uni.hideLoading(); + } + }); + } + const saveUserNikename = (val) => { + if (!userInfo.nickname) { + $util.showToast({ + title: "璇疯緭鍏ユ樀绉帮紒", + icon: "success" + }) + return + } + $api.saveUser({ + Nickname: userInfo.nickname + }).then(res => { + if (res.code == 1) { + $util.showToast({ + title: "鏄电О淇濆瓨鎴愬姛锛�", + icon: "success" + }) + store.commit('setUserInfo', userInfo.value) + showEdit.value = false + } else { + $util.showToast({ + title: res.error + }) + } + }) + } + const blurNickName = (val) => { + userInfo.nickname = val } </script> <style> .content { height: 300rpx; - background-color: #d8d8d8; + background: linear-gradient(to bottom, #fbec99, #ffffff); + } + + .avatar-wrapper { + border-radius: 50%; + width: 80px !important; + height: 80px; + margin: 0; + padding: 0; + background-color: transparent; } .fui-list__item { @@ -45,6 +198,7 @@ display: flex; align-items: center; justify-content: space-between; + } .fui-text__explain { @@ -52,4 +206,8 @@ color: #7F7F7F; flex-shrink: 0; } + + .u-form-item__body { + padding: 0 !important; + } </style> \ No newline at end of file -- Gitblit v1.9.1