tradeIncome.vue
2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<template>
<LayoutApp :show-back="true" title="我的收入">
<div class="body" ref="body">
<Scroll
ref="scroll"
:data="incomeData.list"
:options="options"
@pulling-down="onPullingDown"
@pulling-up="onPullingUp">
<incomeHeader :data="getAssetSummary"></incomeHeader>
<payAccount></payAccount>
<incomeDetail :data="incomeData">
<template v-for="(item,index) in incomeData.list">
<incomeItem :data="item" :key="index"></incomeItem>
</template>
</incomeDetail>
<template v-if="customPullDown" slot="pulldown" slot-scope="props">
<pullDown :propsData="props" :pullDownRefreshThreshold="pullDownRefreshThreshold"></pullDown>
</template>
</Scroll>
</div>
</LayoutApp>
</template>
<script>
import incomeHeader from './components/incomeHeader';
import incomeDetail from './components/incomeDetail';
import incomeItem from './components/incomeItem';
import pullDown from './components/pullDown';
import payAccount from './components/payAccount';
import { createNamespacedHelpers } from 'vuex';
import {Style, Scroll} from 'cube-ui';
import scrollMixin from '../../../mixins/scroll';
const {mapState, mapGetters, mapActions} = createNamespacedHelpers('home/mine');
export default {
mixins: [scrollMixin],
data() {
return {
}
},
computed:{
...mapGetters(['getAssetSummary']),
...mapState({
incomeData: (state) => state.assetData
}),
},
created() {
},
activated() {
this.fetchAssets(true)
},
watch: {
"incomeData.list": function(val) {
if(val.length === 0) {
this.$refs.scroll.disable()
} else {
this.$refs.scroll.enable()
}
}
},
methods: {
...mapActions(['fetchAssets']),
onPullingDown() {
this.fetchAssets(true)
},
onPullingUp() {
if(!this.incomeData.endReached) {
this.fetchAssets(false)
} else {
this.$refs.scroll.forceUpdate()
}
}
},
components: {
incomeHeader,
incomeDetail,
incomeItem,
pullDown,
payAccount,
Style,
Scroll
}
};
</script>
<style lang="scss" scoped>
.body {
height: 100%;
overflow-y: auto;
background-color: white;
padding: 0 40px;
color: #999;
}
</style>