android添加银行插件
diff --git a/pages/sub_mine/cashFlow.vue b/pages/sub_mine/cashFlow.vue
new file mode 100644
index 0000000..f175e83
--- /dev/null
+++ b/pages/sub_mine/cashFlow.vue
@@ -0,0 +1,349 @@
+<template>
+	<view class="cashFlow">
+		<!-- #ifdef APP-PLUS -->
+		<view class="bgColor"></view>
+		<!-- #endif -->
+		<view class="cashFlow-tabs">
+			<u-icon name="play-left-fill" color="#999999" size="26" @click="topre"></u-icon>
+			<view class="cashFlow-tabs-tabs">
+				<u-tabs :list="list" :current="current" @change="change" bar-width="250" item-width="250" class="cashFlow-tabs-tabs"></u-tabs>
+			</view>
+			<u-icon name="play-right-fill" color="#999999" size="26" @click="tonext"></u-icon>
+		</view>
+		<!-- <v-tabs v-model="current" :tabs="list" @change="change"></v-tabs> -->
+		<view class="cashFlow-content-ucharts">
+			<ring-chart :dataAs="pieData" canvasId="index_ring_1" :titleAs="titleAs" v-if="showPie" />
+		</view>
+		<view class="cashFlow-content">
+			<view class="cashFlow-content-list">
+				<view class="cashFlow-content-list-title">支出明细</view>
+				<scroll-view :scroll-y="true" class="scrollView" @scrolltolower="loadMoreBills" :style="{'height':height+'px'}" v-if="showPie">
+					<view class="cashFlow-content-list-item" v-for="(v,i) in bills" :key="i" @click="toDetails(v)">
+						<view class="cashFlow-content-list-item-content">
+							<text class="cashFlow-content-list-item-content-kind">{{v.transdesc}}</text>
+							<text class="cashFlow-content-list-item-content-date">{{v.date}}</text>
+						</view>
+						<view class="cashFlow-content-list-item-cost">
+							<text>{{v.amount}}</text>
+						</view>
+					</view>
+					<u-loadmore :status="status" :icon-type="iconType" :load-text="loadText" margin-top="30" />
+				</scroll-view>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import RingChart from './components/stan-ucharts/RingChart.vue';
+	// import vtabs from '@/components/v-tabs/v-tabs.vue';
+	export default {
+		components: {
+			RingChart,
+			// vtabs
+		},
+		data() {
+			return {
+				showPie: false,
+				height: "",
+				status: "loadmore",
+				iconType: 'circle',
+				loadText: {
+					loadmore: '轻轻上拉',
+					loading: '努力加载中',
+					nomore: '暂无更多'
+				},
+				list: [{
+					name: "1月",
+					// ischecked: false
+				}, {
+					name: "2月",
+					// ischecked: false
+				}, {
+					name: "3月",
+					// ischecked: false
+				}, {
+					name: "4月",
+					// ischecked: false
+				}, {
+					name: "5月",
+					// ischecked: false
+				}, {
+					name: "6月",
+					// ischecked: false
+				}, {
+					name: "7月",
+					// ischecked: false
+				}, {
+					name: "8月",
+					// ischecked: false
+				}, {
+					name: "9月",
+					// ischecked: false
+				}, {
+					name: "10月",
+					// ischecked: false
+				}, {
+					name: "11月",
+					// ischecked: false
+				}, {
+					name: "12月",
+					// ischecked: false
+				}],
+				current: new Date().getMonth(),
+				pieData: {
+					//饼状图数据
+					series: []
+				},
+				titleAs: {
+					title: {
+						name: '本卡总支出',
+						fontSize: 16
+					},
+					subtitle: {
+						name: '',
+						fontSize: 12
+					}
+				},
+				bills: [],
+				pageno: 1,
+				end: false,
+				date: "",
+				nullVal: [{
+					name: "总消费",
+					data: 0,
+					legendShape: "rect"
+				}]
+			}
+		},
+		methods: {
+			moveHandle() {
+				return
+			},
+			topre() {
+				let that = this
+				if (that.current != 0) {
+					that.current = that.current - 1
+					let time = new Date().getFullYear() + "" + (that.current + 1 >= 10 ? that.current + 1 : "0" + (that.current + 1))
+					that.date = time
+					that.getbills(1, time)
+					that.getPieVal(time)
+				}
+			},
+			tonext() {
+				let that = this
+				if (that.current != 11) {
+					that.current = that.current + 1
+					let time = new Date().getFullYear() + "" + (that.current + 1 >= 10 ? that.current + 1 : "0" + (that.current + 1))
+					that.date = time
+					that.pageno = 1
+					that.getbills(1, time)
+					that.getPieVal(time)
+				}
+			},
+			change(index) {
+				let that = this
+				that.current = index;
+				let time = new Date().getFullYear() + "" + (that.current + 1 >= 10 ? that.current + 1 : "0" + (that.current + 1))
+				that.date = time
+				that.pageno = 1
+				that.getbills(1, time)
+				that.getPieVal(time)
+			},
+			getbills(no, mon) {
+				let that = this
+				let pageno = no
+				if (pageno == 1) {
+					that.bills = []
+				}
+				let param = {
+					pageno: pageno,
+					month: mon
+				}
+
+				that.$u.post("/v1/bills", param).then((res) => {
+					let list = res.page ? res.page.data : []
+					if (list.length > 0) {
+						list.forEach((item, index) => {
+							let date = item.transdate + item.transtime
+							item.date = item.transdate.substr(0,4) + "-" + item.transdate.substr(4,2)+ "-" + item.transdate.substr(6,2)+ " " + item.transtime.substr(0,2)+ ":" + item.transtime.substr(2,2)+ ":" + item.transtime.substr(4,2);
+						})
+						//console.log(list)
+						that.bills = that.bills.concat(list)
+						that.end = false
+					} else {
+						that.status = "nomore"
+						that.end = true
+					}
+				})
+			},
+			loadMoreBills() {
+				let that = this
+				let pageno = that.pageno++
+				let end = that.end
+				let month = that.date
+				if (!end) {
+					that.getbills(pageno, month)
+				}
+			},
+			toDetails(e) {
+				let data = JSON.stringify(e)
+				uni.navigateTo({
+					url: "/pages/sub_mine/billsDetails?data=" + data
+				})
+			},
+			getSrcollViewHeight() {
+				let winHeight
+				let that = this
+				uni.getSystemInfo({
+					success: function(res) {
+						winHeight = res.windowHeight
+					}
+				});
+				//console.log(winHeight)
+				const query = uni.createSelectorQuery().in(that);
+				query.select('.cashFlow-content-list-title').boundingClientRect(data => {
+					console.log(data)
+					if(!data){
+						setTimeout(()=>{
+							that.getSrcollViewHeight()
+						},10)
+						return
+					}
+					that.height = winHeight - data.top - data.height - 15
+					// that.height = (data.bottom - data.height)*2
+				}).exec();
+			},
+			getPieVal(mon) {
+				let that = this
+				that.showPie = false
+				let param = {
+					month: mon
+				}
+				that.$u.post("/v1/billcount", param).then(res => {
+					let total = res.data ? res.data.total : null
+					//console.log(total)
+					that.titleAs.subtitle.name = "¥" + Math.abs(total)
+					if (total === 0 || !total) {
+						that.pieData.series = that.nullVal
+						that.showPie = true
+						return false
+					}
+					let list = res.data.group
+					let newList = []
+					list.map((value, index, arry) => {
+						newList.push({
+							"name": value.transtype,
+							"data": Math.abs(value.amount),
+							"legendShape": "rect"
+						})
+					})
+					that.pieData.series = newList
+					that.showPie = true
+				})
+			}
+		},
+		onLoad() {
+			let that = this
+			let mon = new Date().getFullYear() + "" + (new Date().getMonth() + 1 > 10 ? new Date().getMonth() + 1 : '0' + (new Date()
+				.getMonth() + 1))
+			//console.log(mon)
+			that.date = mon
+			that.getbills(1, mon)
+			that.getPieVal(mon)
+			this.getSrcollViewHeight()
+		},
+	}
+</script>
+
+<style scoped lang="scss">
+	.scrollView {
+		// height: calc(100vh - 710rpx)
+	}
+	.cashFlow-content-ucharts{
+		height: 250px;
+	}
+
+	scroll-view ::-webkit-scrollbar {
+		width: 0;
+		height: 0;
+		display: none;
+		background-color: transparent;
+	}
+	/* #ifdef APP-PLUS */
+	.bgColor {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: #FFFFFF;
+		z-index: -1;
+	}
+	/* #endif */
+	
+
+	page {
+		background-color: #FFFFFF;
+	}
+
+	.cashFlow {
+		background-color: #FFFFFF;
+		&-tabs {
+			display: flex;
+			// height: 500rpx;
+			justify-content: space-around;
+			padding: 10rpx 30rpx 0;
+
+			&-tabs {
+				width: 95%;
+			}
+		}
+
+		&-content {
+
+			&-list {
+				padding: 30rpx;
+
+				&-title {
+					font-family: "PingFang-SC-Medium";
+					color: #343434;
+					font-size: 32rpx;
+				}
+
+				&-item {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					border-bottom: 1rpx solid #CCCCCC;
+					padding: 30rpx 0;
+
+					&-content {
+						display: flex;
+						flex-direction: column;
+
+						&-kind {
+							color: #343434;
+							font-size: 30rpx;
+							font-family: "PingFang-SC-Medium";
+							margin-bottom: 10rpx;
+						}
+
+						&-date {
+							color: #9A9A9A;
+							font-size: 26rpx;
+							font-family: "PingFang-SC-Medium";
+						}
+					}
+
+					&-cost {
+						color: #666666;
+						font-size: 32rpx;
+						font-family: "PingFang-SC-Medium";
+					}
+				}
+			}
+		}
+	}
+</style>