purui 1 month ago
parent
commit
c10d662382

+ 2 - 1
packages/app/src/pages/home/index.vue

@@ -126,7 +126,8 @@ const offError = (err) => {
   console.log(err)
 }
 onShow(async () => {
-  await pageHelperRef.value?.reload()
+  // await pageHelperRef.value?.reload()
+  await pageHelperRef.value?.refresh()
   const reqs = [setHotActivities()]
   if (isLogined.value) {
     reqs.push(setStudyTours())

+ 5 - 0
packages/merchant/src/core/libs/requests.ts

@@ -232,6 +232,11 @@ export interface UpdatePasswordData {
  */
 export const updatePassword = (data: UpdatePasswordData) =>
   httpPost('/app-api/member/user/updatePassword2', data)
+/**
+ * 修改用户信息
+ */  
+export const updateProfile = (data) =>
+  httpPut('/app-api/member/app-broker/update', data)  
 export const fakeThis = (query: { agreement: AgreementType }) =>
   httpGet<string>('/app-api/infra/file/download', query)
 export const getByDictType = (

+ 36 - 2
packages/merchant/src/pages/mine/agent/settings/index.vue

@@ -10,7 +10,7 @@
 import { useUserStore } from '../../../../store'
 import { storeToRefs } from 'pinia'
 
-import { getBroker, getVendorAppInfo } from '../../../../core/libs/requests'
+import { getBroker, getVendorAppInfo, updateProfile } from '../../../../core/libs/requests'
 import SectionHeading from '@designer-hub/app/src/components/section-heading.vue'
 import { messages } from '../../../../core/libs/messages'
 import { useMessage } from 'wot-design-uni'
@@ -25,6 +25,38 @@ const { isLogined, userInfo } = storeToRefs(userStore)
 const { data, run: setData } = useRequest(() =>
   getBroker({ brokerId: String(userInfo.value.userId) }),
 )
+
+const onChooseAvatar = () =>{
+	uni.chooseMedia({
+		mediaType:['image'],
+		count:1,
+		success:(res)=>{		
+			const tempFilePaths = res.tempFiles
+			uni.uploadFile({
+				url:`${import.meta.env.VITE_SERVER_BASEURL}/app-api/infra/file/upload`,
+				name:"file",
+				filePath: tempFilePaths[0].tempFilePath,
+				success (res){
+				    let img = JSON.parse(res.data)
+					updateProfile({headImgUrl:img.data,id:data.value.id}).then(()=>{
+						uni.showToast({
+						  title: '头像更新成功',
+						  icon: 'none',
+						  duration: 2000,
+						})
+						setData()
+					}).catch(err=>{
+						console.log(err)
+					})
+				},
+				fail(err) {
+					console.log(err)
+				}
+			})
+		}
+	})
+}
+
 const logout = () => {
   uni.showModal({
     title: messages.mine.setting.logoutMessageText,
@@ -45,7 +77,9 @@ onMounted(async () => {
   <view class="bg-white p-[16px] flex-grow flex flex-col gap-8.5">
     <SectionHeading size="sm" :title="'头像'">
       <template #append>
-        <wd-img width="28" height="28" round custom-class="" :src="data?.headImgUrl" />
+        <view class="relative">
+			<wd-img width="28" @click="onChooseAvatar" height="28" round custom-class="relative z-0" :src="data?.headImgUrl" />
+		</view>
       </template>
     </SectionHeading>
     <SectionHeading size="sm" :title="'姓名'" :end-text="String(data?.brokerName)"></SectionHeading>

+ 6 - 1
packages/merchant/src/pages/mine/components/agent-mine.vue

@@ -83,7 +83,12 @@ const confirmDelete = (id: number) => {
     },
   })
 }
-onMounted(async () => {
+defineExpose({
+  refresh: () => {
+    setAgent()
+  },
+})
+onMounted(async () => {	
   await setAgent()
   await Promise.all([setYearTarget(), setDesignerData(), setFollowData()])
   uni.$on('refresh', async (val: any) => {

+ 6 - 3
packages/merchant/src/pages/mine/index.vue

@@ -27,6 +27,7 @@ import type { CalendarInstance } from 'wot-design-uni/components/wd-calendar/typ
 
 const calendar = ref<CalendarInstance>()
 const pageHelperRef = ref<ComponentExposed<typeof PageHelperEvo>>()
+const agentMineRef = ref<ComponentExposed<typeof AgentMine>>()
 const userStore = useUserStore()
 const publishState = ref(false)
 const { isLogined, userInfo, isMerchant, isAgent } = storeToRefs(userStore)
@@ -98,9 +99,11 @@ onShow(async () => {
     await setData()
     await setOrders()
     await pageHelperRef.value?.refresh()
-  }
-
+  } 
   if (isLogined.value && isAgent?.value) {
+	console.log(agentMineRef.value)
+	console.log(pageHelperRef.value)
+	await agentMineRef.value?.refresh()
     await setAgent()
     await Promise.all([setYearTarget(), setdesignerData(), setFollowData()])
   }
@@ -121,7 +124,7 @@ onPageScroll(({ scrollTop }: { scrollTop: number }) => {
   <view>
     <NavBarEvo title="我的" transparent dark placeholder></NavBarEvo>
     <template v-if="isAgent">
-      <AgentMine></AgentMine>
+      <AgentMine ref="agentMineRef"></AgentMine>
     </template>
 
     <template v-if="isMerchant">