支付宝小程序
parent
55c8e51b08
commit
d9e4cbb335
|
|
@ -1,9 +1,45 @@
|
||||||
.content {
|
/**
|
||||||
border-left: 1px solid #eee;
|
左侧导航
|
||||||
box-sizing: border-box;
|
*/
|
||||||
overflow: hidden;
|
.left-nav {
|
||||||
padding-bottom: 120rpx;
|
height: 100vh;
|
||||||
min-height: 100vh;
|
background: #ececec;
|
||||||
|
width: 230rpx;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
.left-nav .items {
|
||||||
|
height: 120rpx;
|
||||||
|
line-height: 120rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
padding: 0 10rpx;
|
||||||
|
text-align: center;
|
||||||
|
color: #666;
|
||||||
|
border-left: 3px solid #ececec;
|
||||||
|
border-right: 3px solid #ececec;
|
||||||
|
}
|
||||||
|
.left-nav .items:not(:last-child) {
|
||||||
|
border-bottom: 1px solid #e6e6e6;
|
||||||
|
}
|
||||||
|
.nav-active {
|
||||||
|
border-left: 3px solid #e23f36 !important;
|
||||||
|
border-right: 3px solid #fff !important;
|
||||||
|
color: #e23f36;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
右侧内容
|
||||||
|
*/
|
||||||
|
.right-content {
|
||||||
|
height: 100vh;
|
||||||
|
width: calc( 100% - 230rpx );
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
}
|
}
|
||||||
.content-items {
|
.content-items {
|
||||||
float: left;
|
float: left;
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,20 @@
|
||||||
<vtabs
|
<view class='left-nav'>
|
||||||
a:if="{{data_list.length > 0}}"
|
|
||||||
tabs="{{data_list}}"
|
|
||||||
onTabClick="handle_event"
|
|
||||||
onChange="change_event"
|
|
||||||
activeTab="{{tab_active}}"
|
|
||||||
tabBarActiveTextColor="{{tab_active_text_color}}"
|
|
||||||
tabBarlineColor="{{tab_active_line_color}}"
|
|
||||||
>
|
|
||||||
<block a:for="{{data_list}}">
|
<block a:for="{{data_list}}">
|
||||||
<vtab-content anchor="{{item.anchor}}">
|
<view class='items {{item.active || ""}}' data-index="{{index}}" onTap='nav_event'>
|
||||||
<view class="content">
|
<text>{{item.name}}</text>
|
||||||
<block a:if="{{item.items.length > 0}}">
|
</view>
|
||||||
<view a:for="{{item.items}}" a:for-item="v" class="content-items" data-value="{{v.id}}" onTap="category_event">
|
|
||||||
<image a:if="{{(v.icon || null) != null}}" src="{{v.icon}}" mode="aspectFit" class="icon" />
|
|
||||||
<view class="text single-text">{{v.name}}</view>
|
|
||||||
</view>
|
|
||||||
</block>
|
|
||||||
</view>
|
|
||||||
</vtab-content>
|
|
||||||
</block>
|
</block>
|
||||||
</vtabs>
|
</view>
|
||||||
|
<view class='right-content bg-white'>
|
||||||
|
<block a:if="{{data_content.length > 0}}">
|
||||||
|
<block a:for="{{data_content}}" a:for-item="v">
|
||||||
|
<view class="content-items" data-value="{{v.id}}" onTap="category_event">
|
||||||
|
<image a:if="{{(v.icon || null) != null}}" src="{{v.icon}}" mode="aspectFit" class="icon" />
|
||||||
|
<view class="text single-text">{{v.name}}</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
|
||||||
<view a:if="{{data_list.length == 0 && data_list_loding_status != 0}}">
|
<view a:if="{{data_list.length == 0 && data_list_loding_status != 0}}">
|
||||||
<import src="/pages/common/nodata.axml" />
|
<import src="/pages/common/nodata.axml" />
|
||||||
|
|
|
||||||
|
|
@ -32,15 +32,15 @@ Page({
|
||||||
my.stopPullDownRefresh();
|
my.stopPullDownRefresh();
|
||||||
if (res.data.code == 0) {
|
if (res.data.code == 0) {
|
||||||
var data = res.data.data;
|
var data = res.data.data;
|
||||||
|
var data_content = [];
|
||||||
// tabs
|
if (data.length > 0)
|
||||||
for(var i in data) {
|
{
|
||||||
data[i]['title'] = data[i]['name'];
|
data[0]['active'] = 'nav-active';
|
||||||
data[i]['anchor'] = data[i]['id'];
|
data_content = data[0]['items'];
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setData({
|
this.setData({
|
||||||
data_list: data,
|
data_list: data,
|
||||||
|
data_content: data_content,
|
||||||
data_list_loding_status: data.length == 0 ? 0 : 3,
|
data_list_loding_status: data.length == 0 ? 0 : 3,
|
||||||
data_bottom_line_status: true,
|
data_bottom_line_status: true,
|
||||||
});
|
});
|
||||||
|
|
@ -76,17 +76,17 @@ Page({
|
||||||
this.init();
|
this.init();
|
||||||
},
|
},
|
||||||
|
|
||||||
// 处理事件
|
// 导航事件
|
||||||
handle_event(index) {
|
nav_event(e) {
|
||||||
|
var index = e.currentTarget.dataset.index;
|
||||||
|
var temp_data = this.data.data_list;
|
||||||
|
for(var i in temp_data)
|
||||||
|
{
|
||||||
|
temp_data[i]['active'] = (index == i) ? 'nav-active' : '';
|
||||||
|
}
|
||||||
this.setData({
|
this.setData({
|
||||||
tab_active: index,
|
data_list: temp_data,
|
||||||
});
|
data_content: temp_data[index]['items'],
|
||||||
},
|
|
||||||
|
|
||||||
// tab改变
|
|
||||||
change_event(index) {
|
|
||||||
this.setData({
|
|
||||||
tab_active: index,
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,4 +56,7 @@ page{
|
||||||
}
|
}
|
||||||
.user-login button {
|
.user-login button {
|
||||||
margin-top: 30rpx;
|
margin-top: 30rpx;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
height: 65rpx;
|
||||||
|
line-height: 65rpx;
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue