Просмотр исходного кода

fix: 修复 picker 初始值问题,新增主动选择标志

Developer 4 дней назад
Родитель
Сommit
58858080b3
1 измененных файлов с 5 добавлено и 2 удалено
  1. 5 2
      pagesMy/familyMemberVindicate.vue

+ 5 - 2
pagesMy/familyMemberVindicate.vue

@@ -120,6 +120,7 @@
 	const channelList = ref([])          // 会员渠道列表(可选项)
 	const selectedChannelId = ref('')    // 已选渠道 ID(字符串)
 	const selectedChannelIndex = ref(-1) // picker 当前选中下标,-1 表示未选
+	const hasSelectedChannel = ref(false)  // 用户是否主动选择过渠道
 	const turnType = ref('')
 	
 	const loadChannelList = () => {
@@ -140,7 +141,7 @@
 		})
 	}
 
-	const loadMemberChannel = async (memberId) => {
+	const loadMemberChannel = (memberId) => {
 		proxy.$api.get('/app/member/channelList', { memberId }).then(({ data: res }) => {
 			if (res.code !== 0) return
 			const list = res.data || []
@@ -172,7 +173,8 @@
 		proxy.$api[memberInfo.value.id?'put':'post']('/core/family/member',memberInfo.value).then(({data:res})=>{
 			if(res.code!==0) return proxy.$showToast(res.msg)
 			const memberId = memberInfo.value.id || res.data?.id
-			if (memberId) {
+			// 编辑时(memberInfo.value.id 存在)或用户主动选择了渠道,才调用 setMemberChannel
+			if (memberId && (hasSelectedChannel.value || memberInfo.value.id)) {
 				setMemberChannel(memberId)  // 异步,不 await,不阻断跳转
 			}
 			proxy.$showToast(memberInfo.value.id?'编辑成功':'添加成功')
@@ -194,6 +196,7 @@
 		const idx = e.detail.value
 		selectedChannelIndex.value = idx
 		selectedChannelId.value = String(channelList.value[idx].id)
+		hasSelectedChannel.value = true
 	}
 
 	const setMemberChannel = (memberId) => {