更新大理市民卡app
diff --git a/pages/sub_tabbar/index.vue b/pages/sub_tabbar/index.vue
new file mode 100644
index 0000000..b410b23
--- /dev/null
+++ b/pages/sub_tabbar/index.vue
@@ -0,0 +1,528 @@
+<template>
+	<view class="wrap">
+		<!-- 头部导航 -->
+		<u-sticky h5-nav-height="0">
+			<!-- #ifndef MP-WEIXIN -->
+			<view class="status_bar"></view>
+			<!-- #endif -->
+			<view class="wrap-header">
+				<view class="img-box" @click="scan">
+					<u-image src="/static/images/index/scan.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
+				</view>
+				<u-search placeholder="暂无服务可查询" v-model="searchVal" :show-action="false" bg-color="#F7F7F7" margin="0 15rpx"
+				 @search="search"></u-search>
+				<view class="img-box" @click="toPath('/pages/sub_index/qrcode/index')">
+					<u-image src="/static/images/index/money.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
+				</view>
+				<view class="img-box" @click="toPath('')">
+					<u-image src="/static/images/index/square.png" width="40rpx" height="40rpx" mode="aspectFit"></u-image>
+				</view>
+			</view>
+		</u-sticky>
+		<!-- bannar内容 -->
+		<view class="wrap-bannar">
+			<view class="wrap-bannar-title">
+				<text>城市服务</text>
+				<text>一键速享</text>
+			</view>
+			<view class="wrap-bannar-box">
+				<image src="/static/images/index/bannar.png" mode="widthFix"></image>
+				<view class="wrap-bannar-box-overtitle">
+					<text>出行缴费</text>
+					<text>自在随心</text>
+				</view>
+			</view>
+		</view>
+		<!-- 功能列表 -->
+		<view class="wrap-func">
+			<u-image src="/static/images/index/bannar1.png" width="100%" mode="widthFix" border-radius="10"></u-image>
+			<!-- <view class="wrap-func-item" v-for="(v,i) in funcList" :key="i" @click="toPath()">
+				<u-image :src="v.src" width="70rpx" height="70rpx" mode="aspectFit"></u-image>
+				<text>{{v.title}}</text>
+			</view> -->
+		</view>
+		<!--热门活动 -->
+		<view class="wrap-active">
+			<text class="wrap-active-title">热门活动</text>
+			<view class="wrap-active-bannar">
+				<!-- <u-image src="/static/images/index/bannar01.png" width="100%" mode="widthFix"></u-image> -->
+				<u-swiper :list="activeImgList" name="picid" img-mode="scaleToFill" height="170" interval="5000" duration="1500"
+				 @click="activeImg"></u-swiper>
+			</view>
+			<view class="wrap-active-con">
+				<view class="wrap-active-con-item" @click="signin">
+					<u-image src="/static/images/index/mrqd.png" width="70rpx" height="70rpx"></u-image>
+					<view class="wrap-active-con-item-desc">
+						<text class="wrap-active-con-item-desc-title">每日签到</text>
+						<text class="wrap-active-con-item-desc-desc">签到即可领积分</text>
+					</view>
+				</view>
+				<view class="wrap-active-con-item" @click="toUrl('/pages/sub_index/activeDetails/index?id='+ activity.articleno + '&type=' + activity.code)">
+					<u-image src="/static/images/index/smkhd.png" width="70rpx" height="70rpx"></u-image>
+					<view class="wrap-active-con-item-desc">
+						<text class="wrap-active-con-item-desc-title">{{activity.title?activity.title:''}}</text>
+						<text class="wrap-active-con-item-desc-desc">{{activity.subtitle?activity.subtitle:'暂无'}}</text>
+					</view>
+				</view>
+				<view class="wrap-active-con-item" @click="toPath('/pages/sub_tabbar/active')">
+					<u-image src="/static/images/index/more.png" width="70rpx" height="70rpx"></u-image>
+					<view class="wrap-active-con-item-desc">
+						<text class="wrap-active-con-item-desc-title">更多活动</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<!-- 市民卡业务 -->
+		<view class="wrap-service">
+			<text class="wrap-service-title">市民卡业务</text>
+			<view class="wrap-service-con">
+				<view class="wrap-service-con-exp" @click="toUrl('/pages/sub_index/introduce/index')">
+					<u-image src="/static/images/index/smkjj.png" width="100%" mode="widthFix"></u-image>
+					<text class="wrap-service-con-exp-desc">市民卡简介</text>
+				</view>
+				<view class="wrap-service-con-box">
+					<view class="wrap-service-con-box-bl">
+						<u-image src="/static/images/index/bl.png" width="100%" mode="widthFix"></u-image>
+						<view class="wrap-service-con-box-bl-over" @click="toPath('/pages/sub_index/getCityCard/index')">
+							<text class="wrap-service-con-box-bl-over-up">办理</text>
+							<text class="wrap-service-con-box-bl-over-dowm">网络快速办理</text>
+						</view>
+					</view>
+					<view class="wrap-service-con-box-bl">
+						<u-image src="/static/images/index/zx.png" width="100%" mode="widthFix"></u-image>
+						<view class="wrap-service-con-box-bl-over" @click="toPath('/pages/sub_index/chat/index')">
+							<text class="wrap-service-con-box-bl-over-up">咨询</text>
+							<text class="wrap-service-con-box-bl-over-dowm">24小时在线咨询</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<!-- 底部tabbar -->
+		<!-- <u-gap height="70"></u-gap> -->
+		<u-tabbar :list="vuex_tabbar" :mid-button="true" active-color="#2FA8E1" inactive-color="#999999" @change="changeTabbar"></u-tabbar>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				searchVal: "",
+				funcList: [{
+					title: "物业缴费",
+					src: "/static/images/index/wyjf.png"
+				}, {
+					title: "电费",
+					src: "/static/images/index/df.png"
+				}, {
+					title: "加油卡充值",
+					src: "/static/images/index/jykcz.png"
+				}, {
+					title: "宽带费",
+					src: "/static/images/index/kdf.png"
+				}, {
+					title: "手机缴费",
+					src: "/static/images/index/sjjf.png"
+				}, {
+					title: "固话充值",
+					src: "/static/images/index/ghcz.png"
+				}, {
+					title: "违章查询",
+					src: "/static/images/index/wzcx.png"
+				}, {
+					title: "全部",
+					src: "/static/images/index/all.png"
+				}],
+				activity: [],
+				activeImgList: [{
+					picid: "/static/images/index/bannar01.png",
+					articleno: '00000003'
+				}, ]
+			}
+		},
+		onShow() {
+			this.getActivityList()
+		},
+		methods: {
+			search(e) {
+				uni.showToast({
+					icon: "none",
+					title: "搜索服务功能暂未开通",
+					duration: 1500
+				})
+			},
+
+			scan() {
+				let that = this
+				// #ifndef H5
+				// 只允许通过相机扫码
+				uni.scanCode({
+					// onlyFromCamera: true,
+					// scanType: ['qrCode',"barCode","datamatrix","pdf417"],
+					success: function(res) {
+						//uni.vibrate({})
+						//console.log('条码类型:' + res.scanType);
+						//console.log('条码内容:' + res.result);
+						let url = res.result
+						uni.showToast({
+							title: "扫描成功",
+							icon: "none",
+							duration: 800,
+							complete() {
+								// setTimeout(() => {
+								// 	uni.navigateTo({
+								// 		url: "/pages/sub_index/scanView/index?url=" + url
+								// 	})
+								// }, 1500)
+								let param = {
+									url: url
+								}
+								that.$u.get('/v1/qrcode/auth', param).then(ret => {
+									if (ret.data.permit) {
+										if (ret.data.action == 'water') {
+											setTimeout(() => {
+												uni.navigateTo({
+													url: "/pages/sub_index/scanView/index?url=" + ret.data.url
+												})
+											}, 1500)
+										} else if (ret.data.action == 'dlsmkh5') {
+											// #ifdef APP-PLUS
+												let token = uni.getStorageSync('token')
+												let wv = plus.webview.create(ret.data.url, 'webview_pay', {
+													backButtonAutoControl:'close',
+													additionalHttpHeaders: {
+														Authorization: 'Bearer ' + token
+													}
+												})
+												setTimeout(() => {
+													wv.show()
+												}, 1500)
+											// #endif
+											// #ifndef APP-PLUS
+											uni.showToast({
+												icon: "none",
+												title: "只支持app端",
+												duration: 1500
+											})
+											// #endif
+										}
+									} else {
+										uni.showToast({
+											icon: "none",
+											title: "暂不支持此二维码",
+											duration: 1500
+										})
+									}
+								})
+							}
+						})
+					}
+				});
+				// #endif
+				// #ifdef H5
+				uni.showToast({
+					icon: "none",
+					title: "H5不支持此功能",
+					duration: 1500
+				})
+				// #endif
+			},
+			getActivityList() {
+				let that = this
+				let param = [{
+					code: "PopularActivities", //OnlineActivities、OfflineActivities、PopularActivities
+					pagesize: 1,
+					pageno: 1
+				}]
+				that.$u.post("/i/activity", param).then(res => {
+					if (res.data[0].articles.list.length > 0) {
+						let list = res.data[0].articles.list[0]
+						list.code = 'PopularActivities'
+						that.activity = list
+					}
+				})
+			},
+			activeImg(index) {
+				let that = this
+				let obj = that.activeImgList[index]
+				uni.navigateTo({
+					url: '/pages/sub_index/activeDetails/index?id=' + obj.articleno
+				})
+			},
+			getBannarList() {
+				let that = this
+				that.$u.get('i/column/banner', {}).then(res => {
+					if (res.data.length > 0) {
+						that.activeImgList = res.data
+						//console.log(that.activeImgList)
+					}
+				}).catch(res => {
+					//console.log(1)
+				})
+			},
+			signin() {
+				let that = this
+				that.$u.post('v1/point/task/signin', {}).then(res => {
+					uni.showToast({
+						icon: "none",
+						title: "签到成功",
+						duration: 1500
+					})
+				})
+			}
+		},
+		onLoad() {
+			this.getBannarList()
+			// #ifdef APP-PLUS
+			//引入插件
+			const KJJPush = uni.requireNativePlugin('KJ-JPush');
+			let uid = uni.getStorageSync("uid")
+			//设置Alias
+			KJJPush.setAlias(uid ? uid : 'tourist', 1, result => {
+				//console.log("setAlias:" + JSON.stringify(result));
+			});
+
+			// #endif
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	/* #ifdef MP-WEIXIN */
+	.wrap-func {
+		/deep/image {
+			display: block;
+		}
+	}
+
+	/* #endif */
+
+	.status_bar {
+		background-color: #FFFFFF;
+	}
+
+	.wrap {
+		background-color: #FFFFFF;
+
+		&-header {
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			justify-content: space-between;
+			padding: 10rpx 15rpx;
+			background-color: #FFFFFF;
+
+			image {
+				width: 50rpx;
+				height: 50rpx;
+			}
+
+			.img-box {
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				padding: 0 15rpx;
+			}
+		}
+
+		&-bannar {
+			width: 100vw;
+			margin-top: 10rpx;
+
+			&-title {
+				width: 300rpx;
+				margin: auto;
+				display: flex;
+				justify-content: space-between;
+				font-size: 35rpx;
+				font-weight: bold;
+				font-style: oblique;
+				font-family: "PingFang-SC-Bold";
+			}
+
+			image {
+				width: 100%;
+			}
+
+			&-box {
+				position: relative;
+
+				&-overtitle {
+					position: absolute;
+					width: 250rpx;
+					background-color: #ECECEC;
+					padding: 10rpx 20rpx;
+					border-radius: 50rpx;
+					top: 20rpx;
+					left: 50%;
+					transform: translate(-50%, 0);
+					display: flex;
+					font-size: 24rpx;
+					justify-content: space-between;
+					color: #808080;
+					letter-spacing: 2rpx;
+					font-family: "PingFang-SC-Medium";
+				}
+			}
+		}
+
+		&-func {
+			width: 95vw;
+			background-color: #FFFFFF;
+			margin: -180rpx auto 0;
+			// display: flex;
+			// flex-wrap: wrap;
+			// justify-content: space-between;
+			// padding: 30rpx 0;
+			border-radius: 10rpx;
+			box-shadow: 0 0rpx 6rpx #808080;
+			position: relative;
+
+			/deep/uni-image {
+				display: block;
+			}
+
+			&-item {
+				width: 25%;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				margin-bottom: 30rpx;
+
+				text {
+					margin-top: 10rpx;
+					color: #333333;
+					font-family: "PingFang-SC-Medium";
+					font-size: 24rpx;
+				}
+			}
+		}
+
+		&-active {
+			margin-top: 30rpx;
+			padding: 0 2.5vw;
+
+			&-title {
+				font-family: "PingFang-SC-Medium";
+				font-size: 30rpx;
+				color: #333333;
+			}
+
+			&-bannar {
+				margin-top: 20rpx;
+			}
+
+			&-con {
+				display: flex;
+				justify-content: space-between;
+				margin-top: 20rpx;
+
+				// align-items: center;
+				&-item {
+					width: 32%;
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					background-color: #F7F7F7;
+					padding: 50rpx 20rpx 30rpx;
+					border-radius: 10rpx;
+
+					&-desc {
+						display: flex;
+						flex-direction: column;
+						align-items: center;
+						margin-top: 50rpx;
+						width: 100%;
+						text-align: center;
+
+						&-desc {
+							width: 100%;
+							color: #666666;
+							font-size: 20rpx;
+							margin-top: 10rpx;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+						}
+
+						&-title {
+							width: 100%;
+							font-family: "PingFang-SC-Medium";
+							font-size: 26rpx;
+							color: #333333;
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+						}
+					}
+				}
+			}
+		}
+
+		&-service {
+			margin-top: 30rpx;
+			padding: 0 2.5vw;
+
+			&-title {
+				font-family: "PingFang-SC-Medium";
+				font-size: 30rpx;
+				color: #333333;
+			}
+
+			&-con {
+				display: flex;
+				flex-direction: row;
+				justify-content: space-between;
+				margin-top: 20rpx;
+
+				&-exp {
+					position: relative;
+					width: 50%;
+
+					&-desc {
+						position: absolute;
+						top: 30rpx;
+						left: 30rpx;
+						font-family: "PingFang-SC-Medium";
+						color: #FFFFFF;
+						font-size: 36rpx;
+					}
+				}
+
+				&-box {
+					width: 49%;
+					display: flex;
+					flex-direction: column;
+
+					&-bl {
+						position: relative;
+						margin-top: -10rpx;
+
+						&-over {
+							display: flex;
+							flex-direction: column;
+							position: absolute;
+							top: 50%;
+							left: 15%;
+							transform: translateY(-50%);
+
+							&-up {
+								font-family: "PingFang-SC-Medium";
+								font-size: 30rpx;
+							}
+
+							&-dowm {
+								font-family: "PingFang-SC-Medium";
+								font-size: 24rpx;
+								color: #999999;
+							}
+						}
+					}
+				}
+			}
+
+		}
+	}
+</style>