|
|
@@ -83,11 +83,12 @@
|
|
|
<view class="pre adfac">
|
|
|
<view class="pre-title">会员渠道</view>
|
|
|
<view class="pre-content">
|
|
|
- <picker :range="channelList" range-key="name" :value="selectedChannelIndex" @change="(e) => { selectedChannelIndex = e.detail.value; if(e.detail.value >= 0) selectedChannelId = String(channelList[e.detail.value].id) }">
|
|
|
+ <picker v-if="channelList.length > 0" :range="channelList" range-key="channelName" :value="selectedChannelIndex" @change="onChannelChange">
|
|
|
<view style="font-size: 30rpx;color: #252525;text-align: right;">
|
|
|
- {{ selectedChannelIndex >= 0 ? channelList[selectedChannelIndex].name : '请选择渠道' }}
|
|
|
+ {{ selectedChannelIndex >= 0 ? channelList[selectedChannelIndex].channelName : '请选择渠道' }}
|
|
|
</view>
|
|
|
</picker>
|
|
|
+ <view v-else style="font-size: 30rpx;color: #A1A4A9;text-align: right;">暂无可用渠道</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
@@ -129,14 +130,17 @@
|
|
|
return
|
|
|
}
|
|
|
channelList.value = res.data || []
|
|
|
+ // 若 loadMemberChannel 已先完成并设置了 selectedChannelId,补充同步 index
|
|
|
+ if (selectedChannelId.value) {
|
|
|
+ const idx = channelList.value.findIndex(c => String(c.id) === selectedChannelId.value)
|
|
|
+ if (idx >= 0) selectedChannelIndex.value = idx
|
|
|
+ }
|
|
|
resolve()
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
|
|
|
const loadMemberChannel = async (memberId) => {
|
|
|
- // 等待渠道列表加载完成
|
|
|
- await loadChannelList()
|
|
|
proxy.$api.get('/app/member/channelList', { memberId }).then(({ data: res }) => {
|
|
|
if (res.code !== 0) return
|
|
|
const list = res.data || []
|
|
|
@@ -168,40 +172,38 @@
|
|
|
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(selectedChannelId.value && memberId) {
|
|
|
- proxy.$api.post('/app/member/channel', {
|
|
|
- memberId: memberId,
|
|
|
- channelId: selectedChannelId.value
|
|
|
- }).then(({data:channelRes})=>{
|
|
|
- if(channelRes.code!==0) return proxy.$showToast(channelRes.msg)
|
|
|
- proxy.$showToast(memberInfo.value.id?'编辑成功':'添加成功')
|
|
|
- setTimeout(()=>{
|
|
|
- if(turnType.value==='my'){
|
|
|
- uni.reLaunch({
|
|
|
- url:'/pages/my'
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- uni.redirectTo({
|
|
|
- url:'/pagesMy/familyMember'
|
|
|
- })
|
|
|
- },1000)
|
|
|
- })
|
|
|
- } else {
|
|
|
- proxy.$showToast(memberInfo.value.id?'编辑成功':'添加成功')
|
|
|
- setTimeout(()=>{
|
|
|
- if(turnType.value==='my'){
|
|
|
- uni.reLaunch({
|
|
|
- url:'/pages/my'
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- uni.redirectTo({
|
|
|
- url:'/pagesMy/familyMember'
|
|
|
- })
|
|
|
- },1000)
|
|
|
+ if (memberId) {
|
|
|
+ setMemberChannel(memberId) // 异步,不 await,不阻断跳转
|
|
|
}
|
|
|
+ proxy.$showToast(memberInfo.value.id?'编辑成功':'添加成功')
|
|
|
+ setTimeout(()=>{
|
|
|
+ if(turnType.value==='my'){
|
|
|
+ uni.reLaunch({
|
|
|
+ url:'/pages/my'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ uni.redirectTo({
|
|
|
+ url:'/pagesMy/familyMember'
|
|
|
+ })
|
|
|
+ },1000)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ const onChannelChange = (e) => {
|
|
|
+ const idx = e.detail.value
|
|
|
+ selectedChannelIndex.value = idx
|
|
|
+ selectedChannelId.value = String(channelList.value[idx].id)
|
|
|
+ }
|
|
|
+
|
|
|
+ const setMemberChannel = (memberId) => {
|
|
|
+ proxy.$api.post('/app/member/setChannels', {
|
|
|
+ memberId,
|
|
|
+ channelIds: selectedChannelId.value
|
|
|
+ }).then(({ data: res }) => {
|
|
|
+ if (res.code !== 0) proxy.$showToast(res.msg)
|
|
|
+ }).catch(() => {
|
|
|
+ proxy.$showToast('渠道设置失败,请稍后重试')
|
|
|
})
|
|
|
}
|
|
|
|