2 changed files with 225 additions and 0 deletions
@ -0,0 +1,219 @@ |
|||||
|
<template> |
||||
|
<view class="content"> |
||||
|
<!-- 我的频道,已选的 --> |
||||
|
<view class="title"> |
||||
|
<text>我的频道</text> |
||||
|
</view> |
||||
|
<view class="lf-flex-wrap lf-p-l-5"> |
||||
|
<view class="select-item active" hover-class="lf-opacity" |
||||
|
v-for="(item, key, index) in select_list" :key="index" |
||||
|
@click="cancelItem(key)"> |
||||
|
<text>{{ key }}</text> |
||||
|
<u-icon name="lock-fill" class="remove-icon"></u-icon> |
||||
|
</view> |
||||
|
</view> |
||||
|
<!-- 机票酒店 --> |
||||
|
<view class="title lf-m-t-40"> |
||||
|
<u-icon name="lock-fill"></u-icon> |
||||
|
<text class="lf-m-l-10">机票酒店</text> |
||||
|
</view> |
||||
|
<view class="lf-flex-wrap lf-p-l-5"> |
||||
|
<view class="select-item" hover-class="lf-opacity" |
||||
|
v-for="(item, index) in plane_ticket_list" :key="index" |
||||
|
v-if="!item.checked" @click="activaItem(item, index, 'plane_ticket_list')">{{ item.name }} |
||||
|
</view> |
||||
|
</view> |
||||
|
<!-- 旅游度假 --> |
||||
|
<view class="title lf-m-t-40"> |
||||
|
<u-icon name="lock-fill"></u-icon> |
||||
|
<text class="lf-m-l-10">旅游度假</text> |
||||
|
</view> |
||||
|
<view class="lf-flex-wrap lf-p-l-5"> |
||||
|
<view class="select-item" hover-class="lf-opacity" |
||||
|
v-for="(item, index) in travel_list" :key="index" |
||||
|
v-if="!item.checked" @click="activaItem(item, index, 'travel_list')">{{ item.name }} |
||||
|
</view> |
||||
|
</view> |
||||
|
<!-- 接送服务 --> |
||||
|
<view class="title lf-m-t-40"> |
||||
|
<u-icon name="lock-fill"></u-icon> |
||||
|
<text class="lf-m-l-10">接送服务</text> |
||||
|
</view> |
||||
|
<view class="lf-flex-wrap lf-p-l-5"> |
||||
|
<view class="select-item" hover-class="lf-opacity" |
||||
|
v-for="(item, index) in jieson_list" :key="index" |
||||
|
v-if="!item.checked" @click="activaItem(item, index, 'jieson_list')">{{ item.name }} |
||||
|
</view> |
||||
|
</view> |
||||
|
<!-- 其他精选 --> |
||||
|
<view class="title lf-m-t-40"> |
||||
|
<u-icon name="lock-fill"></u-icon> |
||||
|
<text class="lf-m-l-10">其他精选</text> |
||||
|
</view> |
||||
|
<view class="lf-flex-wrap lf-p-l-5"> |
||||
|
<view class="select-item" hover-class="lf-opacity" |
||||
|
v-for="(item, index) in other_list" :key="index" |
||||
|
v-if="!item.checked" @click="activaItem(item, index, 'other_list')">{{ item.name }} |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
data(){ |
||||
|
return { |
||||
|
select_list: {}, // 当前选中的频道 |
||||
|
plane_ticket_list: [{ |
||||
|
name: '多地比价', |
||||
|
key: 'a1', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '降价提醒', |
||||
|
key: 'a2', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '团体机票', |
||||
|
key: 'a3', |
||||
|
checked: false |
||||
|
}], // 机票酒店 |
||||
|
travel_list: [{ |
||||
|
name: '周边游', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '国内游', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '主题玩法', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '尾单特卖', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '邮轮', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '汽车·船票', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '定制游', |
||||
|
checked: false |
||||
|
}], // 旅游度假 |
||||
|
jieson_list: [{ |
||||
|
name: '接送机', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '接送火车', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '打车', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '按天包车', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '定制包车', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '国内租车', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '境外租车', |
||||
|
checked: false |
||||
|
}], // 接送服务 |
||||
|
other_list: [{ |
||||
|
name: '每日签到', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '会员中心', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '任务中心', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '智慧旅游', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '兑换会员', |
||||
|
checked: false |
||||
|
},{ |
||||
|
name: '旅盟', |
||||
|
checked: false |
||||
|
}], // 其他精选 |
||||
|
} |
||||
|
}, |
||||
|
onLoad(){ |
||||
|
|
||||
|
}, |
||||
|
methods: { |
||||
|
// 添加频道 |
||||
|
activaItem(item, index, list_name){ |
||||
|
let select_list = this.select_list; |
||||
|
if(!select_list[item.name]){ |
||||
|
if(Object.keys(select_list).length > 12){ |
||||
|
this.$msg('最多只能添加12个频道哦') |
||||
|
}else{ |
||||
|
this.select_list[item.name] = list_name; |
||||
|
this[list_name][index].checked = true; |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
// 移除频道 |
||||
|
cancelItem(key){ |
||||
|
// 源数据状态改变 |
||||
|
let list = this[this.select_list[key]]; |
||||
|
list.forEach(item => { |
||||
|
if(item.name == key){ |
||||
|
item.checked = false; |
||||
|
} |
||||
|
}); |
||||
|
// 清除选中的对象 |
||||
|
delete this.select_list[key]; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped="scoped"> |
||||
|
.content{ |
||||
|
padding: 30rpx 32rpx; |
||||
|
} |
||||
|
.title{ |
||||
|
color: #222222; |
||||
|
font-size: 32rpx; |
||||
|
margin-bottom: 20rpx; |
||||
|
font-weight: bold; |
||||
|
} |
||||
|
.select-item{ |
||||
|
width: 170rpx; |
||||
|
height: 82rpx; |
||||
|
border: 1rpx solid #999999; |
||||
|
font-size: 28rpx; |
||||
|
color: #333333; |
||||
|
text-align: center; |
||||
|
line-height: 82rpx; |
||||
|
background-color: #FFFFFF; |
||||
|
margin-right: -1rpx; |
||||
|
margin-top: -1rpx; |
||||
|
box-sizing: border-box; |
||||
|
} |
||||
|
.active{ |
||||
|
border: 1rpx solid #1998FE; |
||||
|
color: #1998FE; |
||||
|
position: relative; |
||||
|
// text-align: left; |
||||
|
// display: flex; |
||||
|
// justify-content: space-between; |
||||
|
// box-sizing: border-box; |
||||
|
// padding: 0 10rpx; |
||||
|
.remove-icon{ |
||||
|
position: absolute; |
||||
|
right: 2rpx; |
||||
|
top: 2rpx; |
||||
|
color: #FF0000; |
||||
|
} |
||||
|
} |
||||
|
.lf-p-l-5{ |
||||
|
padding-left: 5rpx; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue