From 859352ee2e233e8ae80277539af62d982a317c6a Mon Sep 17 00:00:00 2001 From: tj <1378534974@qq.com> Date: 星期四, 05 六月 2025 09:07:34 +0800 Subject: [PATCH] user edit --- pages.json | 7 ++ sub-pages/mine/profile-edit.vue | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++ sub-pages/mine/index.vue | 12 +-- 3 files changed, 165 insertions(+), 8 deletions(-) diff --git a/pages.json b/pages.json index b3ecbda..1ebaad6 100644 --- a/pages.json +++ b/pages.json @@ -101,6 +101,13 @@ "enablePullDownRefresh": true } } + ,{ + "path": "profile-edit", + "style": { + "navigationBarTitleText": "编辑资料", + "enablePullDownRefresh": true + } + } ] } ,{ diff --git a/sub-pages/mine/index.vue b/sub-pages/mine/index.vue index 977b58d..cb9b46d 100644 --- a/sub-pages/mine/index.vue +++ b/sub-pages/mine/index.vue @@ -27,7 +27,7 @@ </view> </view> - <view class="edit-profile" @click="goToProfile">点击这里,填写简介</view> + <view class="edit-profile" >点击这里,填写简介</view> <view class="stats"> <view class="stat-row"> @@ -45,9 +45,9 @@ </view> </view> <view class="action-buttons"> - <up-button text="编辑资料" size="mini" type="info" plain hairline + <up-button text="编辑资料" size="mini" type="info" plain hairline @click="navigateTo('/sub-pages/mine/profile-edit')" :custom-style="{ backgroundColor: 'transparent', borderColor: '#B1ABA9' }" /> - <up-icon name="setting" size="40rpx" @click="gotoUrl('/sub-pages/mine/settings')" /> + <up-icon name="setting" size="40rpx" @click="navigateTo('/sub-pages/mine/settings')" /> </view> </view> </view> @@ -99,10 +99,6 @@ const { navigateTo } = useNavigator() const {getLocation,province } = useLocation() - -const gotoUrl = (url: string) => { - navigateTo(url) -} watch( () => userStore.userInfo, // 监听 userInfo 这个响应式属性 @@ -163,7 +159,7 @@ const goToProfile= ()=> { - navigateTo('/profile'); + navigateTo('/sub-pages/mine/edit-profile'); } </script> diff --git a/sub-pages/mine/profile-edit.vue b/sub-pages/mine/profile-edit.vue new file mode 100644 index 0000000..bc49ab5 --- /dev/null +++ b/sub-pages/mine/profile-edit.vue @@ -0,0 +1,154 @@ +<template> + <view class="edit-profile"> + <view class="avatar-box"> + <up-avatar :src="form.avatar" size="80" @click="onChangeAvatar" /> + </view> + + <up-cell-group :border="false" :customStyle="cellGroupStyle"> + <up-cell title="名字" isLink @click="editField('nickname')"> + <template #value> + <view class="cell-value">{{ form.nickname }}</view> + </template> + </up-cell> + <up-cell title="小红书号" isLink @click="editField('xhsId')"> + <template #value> + <view class="cell-value">{{ form.xhsId }}</view> + </template> + </up-cell> + <up-cell title="背景图" isLink @click="editField('backgroundImg')"> + <template #value> + <view class="cell-value"> + <image class="bg-img" :src="form.backgroundImg" mode="aspectFill" @click="onChangeBackground" /> + </view> + </template> + </up-cell> + </up-cell-group> + + <up-cell-group :border="false" :customStyle="cellGroupStyle"> + <up-cell title="简介" isLink @click="editField('intro')"> + <template #value> + <view class="cell-value">{{ form.intro }}</view> + </template> + </up-cell> + </up-cell-group> + + <up-cell-group :border="false" :customStyle="cellGroupStyle"> + <up-cell title="性别" isLink @click="selectGender"> + <template #value> + <view class="cell-value">{{ form.gender }}</view> + </template> + </up-cell> + <up-cell title="生日" isLink @click="selectBirthday"> + <template #value> + <view class="cell-value">{{ form.birthday }}</view> + </template> + </up-cell> + <up-cell title="地区" isLink @click="selectRegion"> + <template #value> + <view class="cell-value">{{ form.region }}</view> + </template> + </up-cell> + <up-cell title="职业" isLink @click="selectJob"> + <template #value> + <view class="cell-value">{{ form.job }}</view> + </template> + </up-cell> + <up-cell title="学校" isLink @click="editField('school')"> + <template #value> + <view class="cell-value">{{ form.school }}</view> + </template> + </up-cell> + </up-cell-group> + + <view class="save-btn"> + <up-button type="primary" shape="circle" text="保存" @click="onSave" /> + </view> + </view> +</template> + +<script setup lang="ts"> +import { ref } from 'vue'; +import { useGlobal } from '@/composables/useGlobal' +const { $http, $message, $store } = useGlobal() + +const cellGroupStyle = 'background-color: #ffffff; margin-bottom: 20rpx; border-radius: 16rpx;' + +const form = ref({ + avatar: 'https://cdn.uviewui.com/uview/album/1.jpg', + nickname: '小红薯6786F040', + xhsId: '95619601810', + backgroundImg: 'https://smart-manager-new.tos-cn-beijing.volces.com/sms/avatar/avatar.png', + intro: '介绍一下自己', + gender: '女', + birthday: '选择生日', + region: '选择所在的地区', + job: '选择职业', + school: '选择学校' +}); + +const onPreview = () => { + $message.showToast('预览功能暂未实现'); +}; + +const onChangeAvatar = () => { + $message.showToast('更换头像'); +}; + +const onChangeBackground = () => { + $message.showToast('更换背景图'); +}; + +const editField = (field: string) => { + $message.showToast(`编辑字段: ${field}`); +}; + +const selectGender = () => { + $message.showToast('选择性别'); +}; + +const selectBirthday = () => { + $message.showToast('选择生日'); +}; + +const selectRegion = () => { + $message.showToast('选择地区'); +}; + +const selectJob = () => { + $message.showToast('选择职业'); +}; + +const onSave = () => { + $message.showToast('资料已保存'); +}; +</script> + +<style lang="scss" scoped> +.cell-value { + // text-align: center; + text-align: left; + width: 60%; +} + +.edit-profile { + background-color: #f7f7f7; + min-height: 100vh; + padding: 20rpx; + + .avatar-box { + display: flex; + justify-content: center; + // margin: 40rpx 0; + } + + .bg-img { + width: 120rpx; + height: 80rpx; + border-radius: 12rpx; + } + + .save-btn { + padding: 40rpx; + } +} +</style> \ No newline at end of file -- Gitblit v1.9.3