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 | 172 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 136 insertions(+), 36 deletions(-) diff --git a/src/pages/mine/mine.vue b/src/pages/mine/mine.vue index 2489f02..d62e102 100644 --- a/src/pages/mine/mine.vue +++ b/src/pages/mine/mine.vue @@ -3,28 +3,35 @@ <view class="content chuany-flex chuany-align-end chuany-justify-center"> <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"> <!-- <image class="avatar" src="{{avatarUrl}}"></image> --> - <up-avatar :src="avatarUrlImg" shape="circle" size='80'></up-avatar> + <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">{{userInfo.nickname}}</text> - <!-- <input type="nickname" class="fui-text__explain weui-input" placeholder="璇疯緭鍏ユ樀绉�" /> --> - </view> - </fui-list-cell> - <fui-list-cell arrow> - <view class="fui-list__item"> - <text>鎵嬫満鍙�</text> - <text class="fui-text__explain">{{userInfo.phone}}</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> --> @@ -33,6 +40,9 @@ <script setup> import { + apiBaseUrl + } from '@/common/setting/constVarsHelper.js'; + import { onLoad, onShow } from "@dcloudio/uni-app"; @@ -40,44 +50,130 @@ ref, reactive, getCurrentInstance, - toRefs + toRefs, + computed } from 'vue'; const { $upload, $api, - $db + $db, + $util } = getCurrentInstance().appContext.config.globalProperties + import { + useStore + } from 'vuex' + const store = useStore() onLoad(() => { // getUser() }) - onShow(()=>{ - getUser() + onShow(() => { + // getUser() }) - let avatarUrlImg = ref('') - let number1 = ref(0) - let userInfo = reactive({ - nickname: '', - phone: '', - userWorker: false - }) + // 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 = () => { uni.navigateTo({ url: '/pages/mine/apply' }); } + const isShow = () => { + showEdit.value = true + } const onChooseAvatar = (e) => { const { avatarUrl } = e.detail - avatarUrlImg.value = avatarUrl + uploadFile(avatarUrl) } - const getUser = (e) => { - $api.getUser().then(res => { - userInfo.nickname = res.data.nickname - userInfo.phone = res.data.phone - $db.set('userInfo', JSON.stringify(res.data)) + 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> @@ -110,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