Sfoglia il codice sorgente

营销单页分享+完善信息提示

xhj 2 anni fa
parent
commit
147444413e

+ 13 - 0
components/to-userinfo/index.css

@@ -0,0 +1,13 @@
+.ceng{position: fixed;top: 0;left: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.5);z-index: 99;}
+.update-pop{position: fixed;top: 50%;left: 50%;transform: translate(-50%,-50%);background-color: #fff;border-radius: 15rpx;width: 560rpx;z-index: 100;padding-bottom: 55rpx;}
+.update-img{width: 180rpx;height: 180rpx;margin: -42rpx auto 0;}
+.update-avatar{width: 150rpx !important;height: 150rpx !important;margin: 50rpx auto 0 !important;}
+.update-avatar image{width: 100%;height: 100%;}
+.update-avatars{border-radius: 50%;}
+.update-tip{font-size: 32rpx;color: #333;text-align: center;padding: 0 30rpx;margin: 34rpx 0 0;line-height: 48rpx;}
+.update-btn{width: 460rpx !important;height: 80rpx !important;background: var(--main);border-radius: 50rpx !important;font-size: 32rpx;color: #fff;margin: 45rpx auto 0 !important;text-align: center;line-height: 80rpx !important;}
+.update-close{width: 65rpx;height: 65rpx;position: absolute;left: 50%;transform: translateX(-50%);bottom: -110rpx;}
+.update-form{margin: 50rpx;}
+.update-label{font-size: 30rpx;color: #333;margin-right: 20rpx;}
+.update-ipt{font-size: 28rpx;color: #333;border-bottom: 1rpx solid #e9e9e9;padding: 25rpx 0;}
+.update-placeholder{color: #999;}

+ 66 - 0
components/to-userinfo/index.vue

@@ -0,0 +1,66 @@
+<template>
+	<view v-if="showUserInfoPop">
+		<view class="ceng"></view>
+		<view class="update-pop">
+			<image src="/static/images/editInfo.png" class="update-img"></image>
+			<view class="update-tip">您的资料未完善,是否完善资料以便我们提供更优质的服务。</view>
+			<view class="ddflex" style="margin:0 30rpx;">
+				<button class="update-btn fflex" @click="closeUpdate">取消</button>
+				<button class="update-btn fflex" style="margin-left: 30rpx !important;" @click="jumpUrl('/mine/userinfo/userinfo')">去完善</button>
+			</view>
+			<!-- <image :src="picUrlss+'update_close.png'" class="update-close" @click="closeUpdate"></image> -->
+		</view>
+	</view>
+</template>
+
+<script>
+	const app = getApp();
+	const req = require("../../utils/request.js");
+
+	export default {
+		data() {
+			return {
+				picUrlss: req.public.picUrls,
+				showUserInfoPop:false
+			};
+		},
+
+		components: {},
+		props: {
+		},
+		watch: {},
+
+		mounted() {
+			this.getInfo()
+		},
+
+		methods: {
+			jumpUrl(url){
+				uni.navigateTo({
+					url:url
+				})
+				this.closeUpdate()
+			},
+			getInfo() {
+				let that = this;
+				req.getRequest('/api/user/myInfo', {}, data => {
+					if( !data.avatar) return this.showUserInfoPop = true;
+					if( !data.nickName) return this.showUserInfoPop = true;
+					if( !data.realName) return this.showUserInfoPop = true;
+					if( !data.cardNo) return this.showUserInfoPop = true;
+					if( !data.mobile) return this.showUserInfoPop = true;
+					if( !data.birthday) return this.showUserInfoPop = true;
+					if (!data.district) return this.showUserInfoPop = true;
+					if (!data.areaAdd) return this.showUserInfoPop = true;
+				});
+			},
+			closeUpdate(){
+				this.showUserInfoPop = false;
+			},
+		}
+	};
+</script>
+
+<style>
+	@import "./index.css";
+</style>

+ 35 - 31
library/page/page.vue

@@ -19,10 +19,10 @@
 							<view class="act-tit tover">{{ item.title }}</view>
 							<!-- <view class="tag-box tovers">{{ item.brief }}</view> -->
 							<view class="area ddflex">
-								<view>分享 775  |  带来流量 89</view>
+								<view>分享 {{item.shareCount?item.shareCount:0}}  |  浏览 {{item.browseCount?item.browseCount:0}}</view>
 							</view>
 						</view>
-						<button class="act-btn ddflex">
+						<button @click.stop="" class="act-btn ddflex" :data-id="item.id" :data-code="item.code" :data-title="item.title" :data-pic="item.pic" open-type="share">
 							<image style="width: 20rpx;height: 22rpx;margin-right: 10rpx;" src="../static/images/money.png"></image>
 							立即分享
 						</button>
@@ -50,34 +50,49 @@ export default {
 			isShow: false,
 			pageList: [],
 			isLoad: true,
+			searchVal:'',
 			form: {
 				page: 1,
 				limit: 10
 			},
 			isLogin: false,
-			userinfovip: {}
+			userInfo:{}
 		};
 	},
-	onLoad() {},
+	onLoad() {
+		this.userInfo = req.getStorage('userInfo')
+		uni.hideShareMenu()
+	},
 	onShow() {
 		this.isLogin = req.isAuth();
 		this.getPageList(true);
-		if (this.isLogin) {
-			this.getuserVip();
-		}
 	},
 	onReachBottom: function() {
 		this.form.page++;
 		this.getPageList(false);
 	},
-	onShareAppMessage() {
-		
-	},
-	onShareTimeline() {
-		
+	onShareAppMessage(res) {
+		if (res.from === 'button') {
+			this.userBehavior(6,res.target.dataset.id)
+			return {
+				title: res.target.dataset.title,
+				imageUrl: res.target.dataset.pic,
+				path: '/library/pageDetail/index?code=' + res.target.dataset.code +'&isShare=' + true+(this.userInfo.userType==1?('&shareId='+this.userInfo.saleNo):'')
+			};
+		}
 	},
 
 	methods: {
+		// 用户行为
+		userBehavior(type,id) {
+			var dataP = {};
+			dataP.type =
+				7 //、产品 2、活动 3、未知 4、内容 5、课程 6、老师 7、素材 8、题目 9、资料领取 10、招聘职位 12、用户须知 13、素材 15、医院科室 16、海报 20、医生 21 新闻 23名片
+			dataP.behavior = type; //1、关注 2、收藏 3、点赞 4、浏览 5、确认 6、分享
+			dataP.bindId = id;
+			req.postRequestLoding('/api/v3/behavior/save', dataP, data => {
+			});
+		},
 		jumpUrl(url) {
 			if (!req.isLogins(true)) {
 				return;
@@ -91,6 +106,7 @@ export default {
 			this.isLoad = false;
 			let form = this.form;
 			form.rootCode = 'brochure'
+			form.search = this.searchVal?this.searchVal:null
 			uni.showLoading();
 			req.getRequest(
 				'/api/material/library',
@@ -110,29 +126,17 @@ export default {
 				isShow
 			);
 		},
-		getuserVip() {
-			req.getRequest('/api/user/levelDetails', {}, data => {
-				let expireTime = Array;
-				if (data.expireTime) {
-					expireTime = data.expireTime.split(' ');
-					data.expireTime = data.expireTime.replace(/-/g, '/');
-				} // 解决苹果不兼容---日期
-				let nowTime = new Date().getTime();
-				let endTime = new Date(data.expireTime).getTime();
-				let times = parseInt((endTime - nowTime) / 1000); // var expireTime= new Date(data.expireTime)
-				// console.log(times, nowTime, endTime, data.expireTime);
-				this.userinfovip = data;
-				if (times <= 0) {
-					this.userinfovip.end = true;
-				} else {
-					this.userinfovip.end = false;
-				}
-			});
-		},
+		
 		toActivity(item) {
 			uni.navigateTo({
 				url: '/match/activityDetail/activityDetail?id=' + item.id
 			});
+		},
+		// 搜索
+		searchFn(){
+			this.isLoad = true
+			this.form.page = 1
+			this.getPageList()
 		}
 	}
 };

+ 73 - 81
library/pageDetail/index.css

@@ -1,13 +1,12 @@
-.flex-col{flex-direction: column;}
-.ddflex{align-items: center;}
-.fflex{flex: 1;}
+page {
+	background: #fff;
+}
 
-.home{width: 160rpx;height: 72rpx;background-color: rgba(0,0,0,.7);border-radius: 36rpx;justify-content: center;position: fixed;left: 20rpx;z-index: 10;}
-.home text{font-size: 29rpx;color: #fff;}
+.home{width: 160rpx;height: 72rpx;background: rgba(0,0,0,.7);border-radius: 36rpx;justify-content: center;position: fixed;left: 20rpx;z-index: 10;font-size: 29rpx;color: #fff;}
 .home image{width: 29rpx;height: 28rpx;margin-right: 10rpx;}
 
 .top {
-	background-color: #fff;
+	background: #fff;
 	padding: 20rpx 30rpx;
 }
 
@@ -131,11 +130,11 @@
 }
 
 .form-title {
+	font-size: 32rpx;
+	color: #333;
+	font-weight: bold;
 	text-align: center;
 }
-.form-title text{font-size: 32rpx;
-	color: #333;
-	font-weight: bold;}
 
 .form-list {
 	margin-top: 40rpx;
@@ -187,7 +186,7 @@
 
 .form-btn {
 	margin-top: 60rpx;
-	background-color: #2B8CFF;
+	background: var(--mina);
 	font-size: 30rpx;
 	color: #fff;
 	text-align: center;
@@ -197,7 +196,7 @@
 
 /* 文本 */
 .richText {
-	background-color: #fff;
+	background: #fff;
 	padding: 40rpx 30rpx;
 	font-size: 34rpx;
 	color: #333;
@@ -209,7 +208,7 @@
 .product {
 	margin: 20rpx 0;
 	padding: 0 30rpx;
-	background-color: #fff;
+	background: #fff;
 }
 
 .product .li {
@@ -256,7 +255,7 @@
 }
 
 .money {
-	font-size: 36rpx;
+	font-size: 26rpx;
 	color: #C5020B;
 	font-weight: bold;
 }
@@ -269,7 +268,7 @@
 }
 
 .pro-btn {
-	background-color: #2B8CFF;
+	background: var(--mina);
 	height: 50rpx;
 	border-radius: 25rpx;
 	padding: 0 20rpx;
@@ -287,7 +286,7 @@
 .product2 .li {
 	width: 330rpx;
 	margin-right: 30rpx;
-	background-color: #fff;
+	background: #fff;
 	border-radius: 15rpx;
 }
 
@@ -335,7 +334,7 @@
 	border: none;
 	display: inline-block;
 	padding: 30rpx;
-	background-color: #fff;
+	background: #fff;
 	border-radius: 20rpx;
 }
 
@@ -354,7 +353,7 @@
 	bottom: 20%;
 	right: 30rpx;
 	z-index: 50;
-	background-color: rgba(255, 255, 255, .9);
+	background: rgba(255, 255, 255, .9);
 	box-shadow: 0 0 10rpx rgba(0, 0, 0, .1);
 	justify-content: center;
 	font-size: 24rpx;
@@ -377,7 +376,7 @@
 	bottom: 30%;
 	right: 30rpx;
 	z-index: 50;
-	background-color: rgba(255, 255, 255, .9);
+	background: rgba(255, 255, 255, .9);
 	box-shadow: 0 0 10rpx rgba(0, 0, 0, .1);
 	justify-content: center;
 	font-size: 24rpx;
@@ -402,7 +401,7 @@
 .tag {
 	width: 156rpx;
 	height: 40rpx;
-	background-color: #FC3C31;
+	background: #FC3C31;
 	border-radius: 20rpx 20rpx 20rpx 0;
 	font-size: 28rpx;
 	color: #fff;
@@ -425,7 +424,7 @@
 	content: '';
 	display: block;
 	height: 6rpx;
-	background-color: #FFC72C;
+	background: #FFC72C;
 	position: absolute;
 	bottom: 2rpx;
 	left: 30rpx;
@@ -438,7 +437,7 @@
 }
 
 .coupon-list .li {
-	background-color: #fff;
+	background: #fff;
 	box-shadow: 0 0 32rpx rgba(0, 0, 0, 0.04);
 	border-radius: 15rpx;
 	padding: 0 22rpx;
@@ -460,7 +459,7 @@
 	display: block;
 	width: 20rpx;
 	height: 20rpx;
-	background-color: #f6f6f6;
+	background: #f6f6f6;
 	border-radius: 50%;
 	position: absolute;
 	bottom: -10rpx;
@@ -502,26 +501,24 @@
 	width: 160rpx;
 }
 
-.money{justify-content: flex-end;}
-.money text {
-	font-size: 40rpx;
+.money {
+	font-size: 60rpx;
 	color: #EB0000;
 }
 
 
-.money .texts {
+.money text {
 	color: #EB0000;
 	font-size: 30rpx;
 }
 
 .man {
 	font-size: 22rpx;
-	text-align: right;
 }
 
 .li-bot {
 	padding: 15rpx 15rpx 15rpx 7rpx;
-	height: 80rpx;
+	height: 50rpx;
 }
 
 .check {
@@ -552,7 +549,6 @@
 	font-size: 24rpx;
 	color: #fff;
 	justify-content: center;
-	text-align: center;
 }
 
 .yong-ma{width: 38rpx;height: 38rpx;margin-right: 40rpx;}
@@ -609,21 +605,20 @@
 	width: 210rpx;
 	border-radius: 20rpx;
 	margin-right: 30rpx;
-	background-color: #F7F4F8;
+	background: #F7F4F8;
 	margin-bottom: 50rpx;
 	border: 1rpx solid #F7F4F8;
 	box-sizing: border-box;
 	text-align: center;
-	justify-content: center;
 }
 
 .rechargeli:nth-child(3n) {
 	margin-right: 0;
 }
 
-.rechargeli-active {
+.rechargeli.active {
 	border-color: #F32A27;
-	background-color: #fef3f3;
+	background: #fef3f3;
 }
 
 .awealth {
@@ -639,7 +634,7 @@
 .chongzhi {
 	padding: 25rpx 20rpx;
 	text-align: center;
-	background-color: #FD3A31;
+	background: #FD3A31;
 	border-radius: 10rpx;
 	font-size: 32rpx;
 	color: #FFFFFF;
@@ -651,7 +646,7 @@
 	color: #FD3A31;
 	border-radius: 10rpx;
 	font-size: 32rpx;
-	border: 1rpx solid #FD3A31;
+	border: 1px solid #FD3A31;
 	margin-top: 30rpx;
 }
 
@@ -664,7 +659,7 @@
 	left: 0;
 	right: 0;
 	bottom: 0;
-	background-color: rgba(0, 0, 0, .5);
+	background: rgba(0, 0, 0, .5);
 }
 
 .regi {
@@ -675,7 +670,7 @@
 	transform: translate(-50%,-50%);
 	border-radius: 15rpx;
 	padding: 0 30rpx 30rpx;
-	background-color: #fff;
+	background: #fff;
 	z-index: 100;
 }
 
@@ -705,7 +700,7 @@
 	color: #333;
 }
 .regi-btn {
-	background-color: #2B8CFF;
+	background: var(--mina);
 	width: 245rpx;
 	height: 75rpx;
 	line-height: 75rpx;
@@ -715,7 +710,7 @@
 	text-align: center;
 	border-radius: 45rpx;
 }
-.regi-btn1{background-color: #e9e9e9;color: #666;}
+.regi-btn1{background: #e9e9e9;color: #666;}
 
 /* 导引 */
 .guide{width: 420rpx;height: 523rpx;background-color: #FFFFFF;border-radius: 40rpx;position: fixed;top: 0;right: 45rpx;z-index: 100;padding: 45rpx 0 0 60rpx;box-sizing: border-box;}
@@ -726,70 +721,67 @@
 .guide-s image{width: 56rpx;height: 56rpx;margin-right: 18rpx;}
 .guide-btn{width: 300rpx;height: 86rpx;background: linear-gradient(90deg, #009AFF 0%, #3FBDFB 100%);border-radius: 50rpx;font-size: 32rpx;color: #fff;font-weight: bold;text-align: center;line-height: 86rpx;margin-top: 50rpx;}
 
-.popupPost{
-	position: fixed;left: 0;right: 0; z-index: 100;bottom: 400rpx;
-}
-.popup{background-color: #fff;border-radius: 40rpx;width: 634rpx;box-sizing: border-box;padding: 54rpx 47rpx 60rpx;text-align: center;margin: auto;}
+.popup{position: fixed;top: 50%;left: 50%;transform: translate(-50%,-50%);background: #fff;border-radius: 40rpx;width: 634rpx;box-sizing: border-box;padding: 54rpx 47rpx 60rpx;text-align: center;z-index: 100;}
 .popup-img{width: 318rpx;height: 206rpx;margin: 0 auto;}
-.popup-tip{font-size: 52rpx;color: #333;font-weight: bold;margin-top: 30rpx;text-align: center;}
-.popup-tips{text-align: center;font-size: 32rpx;color: #999;margin: 25rpx auto 0;max-width: 430rpx;}
+.popup-tip{font-size: 52rpx;color: #333;font-weight: bold;margin-top: 30rpx;}
+.popup-tips{font-size: 32rpx;color: #999;margin: 25rpx auto 0;max-width: 430rpx;}
 .popup-btns{margin-top: 75rpx;justify-content: space-between;}
-.back-home{text-align: center; font-size: 32rpx;color: #2B8CFF;width: 260rpx;height: 86rpx;border-radius: 50rpx;border: 2rpx solid #2B8CFF;justify-content: center;box-sizing: border-box;}
-.check-btn{text-align: center;font-size: 32rpx;color: #fff;width: 260rpx;height: 86rpx;border-radius: 50rpx;background: linear-gradient(90deg, #009AFF 0%, #3FBDFB 100%);justify-content: center;}
-.popup-closePost{
-	position: absolute;
-	left: 0;
-	right: 0;
-	bottom: -154rpx;
-}
-.popup-close{width: 89rpx;height: 89rpx;position: absolute;margin: auto;}
+.back-home{font-size: 32rpx;color: #2B8CFF;width: 260rpx;height: 86rpx;border-radius: 50rpx;border: 2rpx solid #2B8CFF;justify-content: center;box-sizing: border-box;}
+.check-btn{font-size: 32rpx;color: #fff;width: 260rpx;height: 86rpx;border-radius: 50rpx;background: linear-gradient(90deg, #009AFF 0%, #3FBDFB 100%);justify-content: center;}
+.popup-close{width: 89rpx;height: 89rpx;position: absolute;left: 50%;transform: translateX(-50%);bottom: -154rpx;}
 
-.popup-ipt{margin-top: 55rpx;border: 1rpx solid #707070;border-radius: 15rpx;padding: 20rpx 40rpx;font-size: 32rpx;color: #333;text-align: left;box-sizing: border-box;height: 90rpx;line-height: 50rpx;}
+.popup-ipt{margin-top: 55rpx;border: 1rpx solid #707070;border-radius: 15rpx;padding: 20rpx 30rpx;font-size: 32rpx;color: #333;text-align: left;box-sizing: border-box;height: 90rpx;line-height: 50rpx;}
 .placeholder{color: #999;}
 
+.yzm-box{margin-top: 20rpx;border: 1rpx solid #707070;border-radius: 15rpx;height: 90rpx;}
+.yzm-ipt{padding: 20rpx 30rpx;font-size: 32rpx;color: #333;line-height: 50rpx;text-align: left;}
+.yzm{width: 190rpx; white-space: nowrap;font-size: 28rpx;color: var(--mina);height: 90rpx;line-height: 90rpx;background-color: #f5f5f5;border-radius: 0 15rpx 15rpx 0;}
+.yzm.active{color: #999;}
 
-.ceng{position: fixed;left: 0;top: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.5);z-index: 99;}
-.qrcodePost{
-	position: fixed;
-	left: 0;
-	right: 0;
-	bottom: 400;
-	z-index: 100;
-}
-.qrcode{background-color: #fff;width: 560rpx;border-radius: 15rpx;padding: 30rpx;box-sizing: border-box;text-align: center;margin: auto;}
+
+.ceng{position: fixed;left: 0;top: 0;right: 0;bottom: 0;background: rgba(0,0,0,.5);z-index: 99;}
+.qrcode{position: fixed;background: #fff;width: 560rpx;border-radius: 15rpx;padding: 30rpx;box-sizing: border-box;left: 50%;top: 50%;transform: translate(-50%,-50%);z-index: 100;text-align: center;}
 .code{font-size: 30rpx;color: #333;font-weight: bold;padding: 30rpx 0 50rpx;justify-content: center;border-top: 1rpx dashed #e9e9e9;}
-.code text{color: #2B8CFF;}
-.copy{font-size: 24rpx;color: #999;border: 1rpx solid #e9e9e9;border-radius: 20rpx;height: 40rpx;line-height: 40rpx;width: 100rpx;margin-left: 15rpx;font-weight: normal;text-align: center;}
+.code text{color: var(--mina);}
+.copy{font-size: 24rpx;color: #999;border: 1rpx solid #e9e9e9;border-radius: 20rpx;height: 40rpx;line-height: 40rpx;width: 100rpx;margin-left: 15rpx;font-weight: normal;}
 .qr-code{justify-content: center;padding: 50rpx 0;}
-.closePost{
-	position: absolute;left: 0;right: 0;bottom: -90rpx;
-}
-.close{width: 60rpx;height: 60rpx;margin: auto;}
+.close{position: absolute;left: 50%;transform: translateX(-50%);bottom: -90rpx;width: 60rpx;height: 60rpx;}
 .code-image{
 	width: 400rpx;
 	height: 400rpx;
 }
 
+
 .ruzhu{padding: 30rpx 0;justify-content: center;}
 .ruzhu text{font-size: 24rpx;color: #a5a5a5;}
-.ruzhu .rz-text{color: #2B8CFF;margin: 0 10px;}
-
+.ruzhu .rz-text{color: #2B8CFF;margin: 0 10rpx;}
 /* 按钮悬浮 */
 .bot-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;z-index: 50;background-color: #fff;}
-.btn{width: 100%;height: 80rpx;background-color: #2B8CFF;font-size: 30rpx;color: #fff;border-radius: 10rpx;text-align: center;line-height: 80rpx;}
+.btn{height: 80rpx;background-color: var(--mina);font-size: 30rpx;color: #fff;border-radius: 10rpx;text-align: center;line-height: 80rpx;}
 .btn-red{background-color: #fe0419;}
 /* 商品悬浮 */
-.product-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;background-color: #fff;z-index: 50;border-top: 1rpx solid #f1f1f1;}
+.product-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;background-color: #fff;z-index: 50;box-shadow: 0 0 10rpx rgba(0,0,0,.05);}
 .product-fixed image{width: 100rpx;height: 100rpx;border-radius: 10rpx;margin-right: 20rpx;}
 .product-tit{font-size: 28rpx;color: #333;font-weight: bold;}
 .product-opt{margin-top: 10rpx;justify-content: space-between;}
-.product-price .product-price-m{font-size: 28rpx;color: #C5020B;font-weight: bold;}
-.product-price .product-price-t{font-weight: normal;font-size: 24rpx;margin-left: 10rpx;color: #252A3B;}
-.product-btn{background-color: #2B8CFF;height: 50rpx;border-radius: 25rpx;padding: 0 20rpx;font-size: 28rpx;color: #fff;text-align: center;line-height: 50rpx;}
+.product-price{font-size: 28rpx;color: #C5020B;font-weight: bold;}
+.product-price text{font-weight: normal;font-size: 24rpx;margin-left: 10rpx;color: #252A3B;}
+.product-btn{background: var(--mina);height: 50rpx;border-radius: 25rpx;padding: 0 20rpx;font-size: 28rpx;color: #fff;text-align: center;line-height: 50rpx;}
 /* 优惠券悬浮 */
-.coupon-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;background-color: #fff;z-index: 50;border-top: 1rpx solid #f1f1f1;}
+.coupon-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;background-color: #fff;z-index: 50;box-shadow: 0 0 10rpx rgba(0,0,0,.05);}
 .coupon-fixed image{width: 80rpx;height: 80rpx;margin-right: 15rpx;}
 .coupon-fixed .title{font-size: 32rpx;}
-.coupon-fixed .money{justify-content: flex-start;}
-.coupon-fixed .money text{font-size: 30rpx;}
-.coupon-fixed .money .texts{font-size: 24rpx;}
+.coupon-fixed .money{font-size: 30rpx;}
+.coupon-fixed .money text{font-size: 24rpx;}
+
+
+.right-share{position: fixed;right: 30rpx;bottom: 155rpx;width: 110rpx !important;height: 110rpx !important;border-radius: 50% !important;background: #fff;box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.2);font-size: 20rpx;color: #333;justify-content: center;flex-direction: column;}
+.right-share image{width: 36rpx;height: 36rpx;margin: 0 auto 6rpx;}
+.show {animation: showLayer 0.2s linear both;}
+.hide {animation: hideLayer 0.2s linear both;}
+@keyframes showLayer {0% {transform: translateX(0%);}
+	100% {transform: translateX(140rpx);}
+}
+@keyframes hideLayer {0% {transform: translateX(140rpx);}
+	100% {transform: translateX(0);}
+}

File diff suppressed because it is too large
+ 657 - 511
library/pageDetail/index.vue


+ 795 - 0
library/pageDetail/index_old.css

@@ -0,0 +1,795 @@
+.flex-col{flex-direction: column;}
+.ddflex{align-items: center;}
+.fflex{flex: 1;}
+
+.home{width: 160rpx;height: 72rpx;background-color: rgba(0,0,0,.7);border-radius: 36rpx;justify-content: center;position: fixed;left: 20rpx;z-index: 10;}
+.home text{font-size: 29rpx;color: #fff;}
+.home image{width: 29rpx;height: 28rpx;margin-right: 10rpx;}
+
+.top {
+	background-color: #fff;
+	padding: 20rpx 30rpx;
+}
+
+.logos {
+	font-size: 22rpx;
+	color: #666;
+}
+
+.logo-img {
+	width: 185rpx;
+	height: 39rpx;
+	margin-right: 15rpx;
+}
+
+.logo-r {
+	position: relative;
+	padding-left: 10rpx;
+}
+
+.logo-r:before {
+	content: '';
+	display: block;
+	width: 1rpx;
+	height: 39rpx;
+	background-color: #D1D1D1;
+	position: absolute;
+	top: 50%;
+	transform: translateY(-50%);
+	left: 0;
+}
+
+.logo-r .ddflex {
+	font-size: 20rpx;
+	color: #999;
+	margin-bottom: 5rpx;
+}
+
+.logo-r .ddflex image {
+	width: 17rpx;
+	height: 24rpx;
+	margin-right: 5rpx;
+}
+
+.tel {
+	width: 210rpx;
+	height: 70rpx;
+	border: 1rpx solid #FA9350;
+	border-radius: 8rpx;
+}
+
+.tel-t {
+	height: 32rpx;
+	background-color: #FA9350;
+	font-size: 20rpx;
+	color: #fff;
+	justify-content: center;
+}
+
+.tel-t image {
+	width: 20rpx;
+	height: 20rpx;
+	margin-right: 7rpx;
+}
+
+.call {
+	font-size: 26rpx;
+	color: #FA9350;
+	font-weight: bold;
+	text-align: center;
+	line-height: 38rpx;
+}
+
+/* 轮播图 */
+.ban {
+	height: 400rpx;
+	position: relative;
+	background: #fff;
+}
+
+.swiper {
+	width: 100%;
+	height: 400rpx;
+}
+
+.swiper image {
+	width: 100%;
+	height: 100%;
+}
+
+.swiper-img {
+	width: 750rpx;
+	height: 400rpx;
+}
+
+.dots {
+	position: absolute;
+	left: 50%;
+	transform: translateX(-50%);
+	bottom: 30rpx;
+	z-index: 3;
+	justify-content: center;
+}
+
+.dot {
+	width: 12rpx;
+	height: 12rpx;
+	background: rgba(255, 255, 255, .4);
+	margin: 0 3rpx;
+	border-radius: 6rpx;
+}
+
+.dot.active {
+	background: #fff;
+	width: 28rpx;
+}
+
+/* 表单 */
+.form {
+	padding: 40rpx 30rpx;
+	background: #fff;
+}
+
+.form-title {
+	text-align: center;
+}
+.form-title text{font-size: 32rpx;
+	color: #333;
+	font-weight: bold;}
+
+.form-list {
+	margin-top: 40rpx;
+}
+
+.form-list .li {
+	background: #f9f9f9;
+	border-radius: 15rpx;
+	margin-bottom: 20rpx;
+}
+
+.label {
+	font-size: 160rpx;
+	font-size: 28rpx;
+	color: #666;
+	padding-left: 30rpx;
+}
+
+.ipt {
+	font-size: 30rpx;
+	color: #333;
+	padding: 25rpx 30rpx;
+}
+
+.textarea {
+	font-size: 30rpx;
+	color: #333;
+	padding: 25rpx 30rpx;
+	height: 180rpx;
+}
+
+.phone-ipt {
+	font-size: 30rpx;
+	color: #333;
+	text-align: left;
+	padding: 25rpx 30rpx;
+}
+
+.pickers {
+	font-size: 30rpx;
+	color: #333;
+	text-align: left;
+	padding: 25rpx 30rpx;
+}
+
+.placeholder {
+	color: #999;
+}
+
+.form-btn {
+	margin-top: 60rpx;
+	background-color: #2B8CFF;
+	font-size: 30rpx;
+	color: #fff;
+	text-align: center;
+	line-height: 90rpx;
+	border-radius: 10rpx;
+}
+
+/* 文本 */
+.richText {
+	background-color: #fff;
+	padding: 40rpx 30rpx;
+	font-size: 34rpx;
+	color: #333;
+	line-height: 1.7;
+	margin: 20rpx 0;
+}
+
+/* 商品 */
+.product {
+	margin: 20rpx 0;
+	padding: 0 30rpx;
+	background-color: #fff;
+}
+
+.product .li {
+	border-bottom: 1rpx solid #e9e9e9;
+	padding: 30rpx 0;
+	align-items: flex-start;
+}
+
+.product .li:last-child {
+	border-bottom: none;
+}
+
+.pro-img {
+	width: 200rpx;
+	height: 200rpx;
+	border-radius: 15rpx;
+	margin-right: 20rpx;
+}
+
+.pro-info {
+	height: 200rpx;
+	position: relative;
+}
+
+.pro-name {
+	font-size: 30rpx;
+	color: #333;
+	line-height: 40rpx;
+	height: 85rpx;
+	overflow: hidden;
+}
+
+.pro-bri {
+	font-size: 24rpx;
+	color: #999;
+}
+
+.pro-opt {
+	justify-content: space-between;
+	position: absolute;
+	left: 0;
+	right: 0;
+	bottom: 0;
+}
+
+.money {
+	font-size: 36rpx;
+	color: #C5020B;
+	font-weight: bold;
+}
+
+.money text {
+	font-size: 22rpx;
+	color: #252A3B;
+	margin-left: 5rpx;
+	font-weight: normal;
+}
+
+.pro-btn {
+	background-color: #2B8CFF;
+	height: 50rpx;
+	border-radius: 25rpx;
+	padding: 0 20rpx;
+	font-size: 28rpx;
+	color: #fff;
+	text-align: center;
+	line-height: 50rpx;
+}
+
+.product2 {
+	margin: 20rpx 0;
+	padding: 30rpx;
+}
+
+.product2 .li {
+	width: 330rpx;
+	margin-right: 30rpx;
+	background-color: #fff;
+	border-radius: 15rpx;
+}
+
+.product2 .li:nth-child(2n) {
+	margin-right: 0;
+}
+
+.product2 .pro-img {
+	width: 330rpx;
+	height: 330rpx;
+	border-radius: 15rpx 15rpx 0 0;
+}
+
+.product2 .li .pro-info {
+	padding: 20rpx;
+	height: auto;
+}
+
+.product2 .li .pro-opt {
+	position: inherit;
+	margin-top: 10rpx;
+}
+
+.pro-cart image {
+	width: 42rpx;
+	height: 42rpx;
+}
+
+.product3 {
+	margin: 20rpx 0;
+	padding: 20rpx 0;
+	background: none;
+	height: 260rpx;
+	overflow: hidden;
+}
+
+.product3 scroll-view {
+	white-space: nowrap;
+	padding-bottom: 20rpx;
+}
+
+.product3 .li {
+	width: 600rpx;
+	margin-right: 30rpx;
+	border: none;
+	display: inline-block;
+	padding: 30rpx;
+	background-color: #fff;
+	border-radius: 20rpx;
+}
+
+.product3 .li:first-child {
+	margin-left: 30rpx;
+}
+
+/* 图片 */
+.images image {
+	width: 100%;
+}
+
+/* 客服 */
+.contact {
+	position: fixed;
+	bottom: 20%;
+	right: 30rpx;
+	z-index: 50;
+	background-color: rgba(255, 255, 255, .9);
+	box-shadow: 0 0 10rpx rgba(0, 0, 0, .1);
+	justify-content: center;
+	font-size: 24rpx;
+	color: #333;
+	flex-direction: column;
+	width: 100rpx;
+	height: 100rpx;
+	border-radius: 50%;
+}
+
+.contact image {
+	width: 40rpx;
+	height: 34rpx;
+	margin: 0 auto 5rpx;
+}
+
+/* 分享 */
+.share {
+	position: fixed;
+	bottom: 30%;
+	right: 30rpx;
+	z-index: 50;
+	background-color: rgba(255, 255, 255, .9);
+	box-shadow: 0 0 10rpx rgba(0, 0, 0, .1);
+	justify-content: center;
+	font-size: 24rpx;
+	color: #333;
+	flex-direction: column;
+	width: 100rpx;
+	height: 100rpx;
+	border-radius: 50%;
+}
+
+.share image {
+	width: 34rpx;
+	height: 34rpx;
+	margin: 0 auto 5rpx;
+}
+
+/* 优惠券 */
+.coupon {
+	padding: 60rpx 30rpx 30rpx;
+}
+
+.tag {
+	width: 156rpx;
+	height: 40rpx;
+	background-color: #FC3C31;
+	border-radius: 20rpx 20rpx 20rpx 0;
+	font-size: 28rpx;
+	color: #fff;
+	text-align: center;
+	line-height: 40rpx;
+	margin: 0 auto 15rpx;
+}
+
+.form-title view {
+	position: relative;
+	display: inline-block;
+}
+
+.form-title view text {
+	position: relative;
+	z-index: 5;
+}
+
+.form-title view::after {
+	content: '';
+	display: block;
+	height: 6rpx;
+	background-color: #FFC72C;
+	position: absolute;
+	bottom: 2rpx;
+	left: 30rpx;
+	right: 30rpx;
+	z-index: 2;
+}
+
+.coupon-list {
+	padding: 10rpx 0 0;
+}
+
+.coupon-list .li {
+	background-color: #fff;
+	box-shadow: 0 0 32rpx rgba(0, 0, 0, 0.04);
+	border-radius: 15rpx;
+	padding: 0 22rpx;
+	color: #999;
+	margin-bottom: 24rpx;
+	position: relative;
+	margin-top: 30rpx;
+}
+
+.info {
+	border-bottom: 1rpx dashed #E9E9E9;
+	padding: 20rpx 22rpx 29rpx 9rpx;
+	position: relative;
+}
+
+.info::before,
+.info::after {
+	content: '';
+	display: block;
+	width: 20rpx;
+	height: 20rpx;
+	background-color: #f6f6f6;
+	border-radius: 50%;
+	position: absolute;
+	bottom: -10rpx;
+}
+
+.info::before {
+	left: -34rpx;
+}
+
+.info::after {
+	right: -34rpx;
+}
+
+.info .left-pic {
+	width: 80rpx;
+	height: 80rpx;
+	margin-right: 15rpx;
+}
+
+.info .left-pic image {
+	width: 100%;
+	height: 100%;
+}
+
+.title {
+	font-size: 32rpx;
+	color: #222;
+	font-weight: bold;
+}
+
+.time {
+	font-size: 22rpx;
+	margin-top: 15rpx;
+}
+
+.info-r {
+	text-align: right;
+	margin-left: 20rpx;
+	width: 160rpx;
+}
+
+.money{justify-content: flex-end;}
+.money text {
+	font-size: 40rpx;
+	color: #EB0000;
+}
+
+
+.money .texts {
+	color: #EB0000;
+	font-size: 30rpx;
+}
+
+.man {
+	font-size: 22rpx;
+	text-align: right;
+}
+
+.li-bot {
+	padding: 15rpx 15rpx 15rpx 7rpx;
+	height: 80rpx;
+}
+
+.check {
+	font-size: 24rpx;
+	color: #666;
+}
+
+.check image {
+	width: 17rpx;
+	height: 11rpx;
+	margin-left: 8rpx;
+}
+
+.infos {
+	font-size: 20rpx;
+	padding: 15rpx 0 30rpx;
+}
+
+.infos view {
+	padding: 5rpx 0;
+}
+
+.yong {
+	width: 130rpx;
+	height: 50rpx;
+	background: linear-gradient(90deg, #009AFF 0%, #3FBDFB 100%);
+	border-radius: 28rpx;
+	font-size: 24rpx;
+	color: #fff;
+	justify-content: center;
+	text-align: center;
+}
+
+.yong-ma{width: 38rpx;height: 38rpx;margin-right: 40rpx;}
+
+/* 充值金额 */
+.recharge {
+	padding: 45rpx 0 0 0;
+}
+
+.rechargeMoney {
+	font-size: 32rpx;
+	/* font-weight: bold; */
+	color: #666;
+}
+
+.rechargeul {
+	padding: 40rpx 0 0 0;
+	flex-wrap: wrap;
+	/* border-bottom: 1rpx solid #DBDBDB; */
+}
+
+.rechargeId {
+	padding: 25rpx 0;
+	font-size: 40rpx;
+	color: #333;
+	font-weight: bold;
+	border-bottom: 1rpx solid #DBDBDB;
+	align-items: center;
+	margin-bottom: 70rpx;
+}
+
+.rechargeId text {
+	font-weight: bold;
+	margin-right: 22rpx;
+}
+
+.rechargeId input {
+	font-size: 48rpx;
+	color: #333;
+	height: 60rpx;
+	font-weight: normal;
+}
+
+.rechargeId.on {
+	border-color: #F32A27;
+}
+
+.placeholder {
+	color: #BABABA;
+}
+
+.rechargeli {
+	padding: 60rpx 0;
+	width: 210rpx;
+	border-radius: 20rpx;
+	margin-right: 30rpx;
+	background-color: #F7F4F8;
+	margin-bottom: 50rpx;
+	border: 1rpx solid #F7F4F8;
+	box-sizing: border-box;
+	text-align: center;
+	justify-content: center;
+}
+
+.rechargeli:nth-child(3n) {
+	margin-right: 0;
+}
+
+.rechargeli-active {
+	border-color: #F32A27;
+	background-color: #fef3f3;
+}
+
+.awealth {
+	color: #F32A27 !important;
+}
+
+.wealth {
+	font-size: 30rpx;
+	font-weight: bold;
+	text-align: center;
+}
+
+.chongzhi {
+	padding: 25rpx 20rpx;
+	text-align: center;
+	background-color: #FD3A31;
+	border-radius: 10rpx;
+	font-size: 32rpx;
+	color: #FFFFFF;
+}
+
+.subchongzhi {
+	padding: 23rpx 18rpx;
+	text-align: center;
+	color: #FD3A31;
+	border-radius: 10rpx;
+	font-size: 32rpx;
+	border: 1rpx solid #FD3A31;
+	margin-top: 30rpx;
+}
+
+
+/* 手机号弹窗 */
+.mask {
+	position: fixed;
+	z-index: 99;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	background-color: rgba(0, 0, 0, .5);
+}
+
+.regi {
+	position: fixed;
+	width: 550rpx;
+	left: 50%;
+	top: 50%;
+	transform: translate(-50%,-50%);
+	border-radius: 15rpx;
+	padding: 0 30rpx 30rpx;
+	background-color: #fff;
+	z-index: 100;
+}
+
+.regi-tit {
+	border-bottom: 2rpx solid #D8D8D8;
+	font-size: 30rpx;
+	color: #333;
+	padding: 35rpx 0 35rpx;
+	text-align: center;
+}
+
+.regi-close {
+	width: 37rpx;
+	height: 37rpx;
+	position: absolute;
+	top: 20rpx;
+	right: 22rpx;
+}
+
+.phone {
+	align-items: center;
+	margin: 100rpx 0 100rpx;
+}
+
+.phone input {
+	font-size: 30rpx;
+	color: #333;
+}
+.regi-btn {
+	background-color: #2B8CFF;
+	width: 245rpx;
+	height: 75rpx;
+	line-height: 75rpx;
+	font-size: 30rpx;
+	color: #fff;
+	margin-bottom: 20rpx;
+	text-align: center;
+	border-radius: 45rpx;
+}
+.regi-btn1{background-color: #e9e9e9;color: #666;}
+
+/* 导引 */
+.guide{width: 420rpx;height: 523rpx;background-color: #FFFFFF;border-radius: 40rpx;position: fixed;top: 0;right: 45rpx;z-index: 100;padding: 45rpx 0 0 60rpx;box-sizing: border-box;}
+.guide::before{content: '';display: block;width: 0;height: 0;border: 20rpx solid transparent;border-top: none;border-bottom-color: #fff;position: absolute;right: 85rpx;top: -15rpx;}
+.guide-tit{font-size: 40rpx;color: #333;font-weight: bold;padding-left: 10rpx;}
+.guide-tip{font-size: 24rpx;color: #999;padding-left: 10rpx;margin-top: 5rpx;}
+.guide-s{font-size: 36rpx;color: #333;font-weight: bold;margin-top: 38rpx;}
+.guide-s image{width: 56rpx;height: 56rpx;margin-right: 18rpx;}
+.guide-btn{width: 300rpx;height: 86rpx;background: linear-gradient(90deg, #009AFF 0%, #3FBDFB 100%);border-radius: 50rpx;font-size: 32rpx;color: #fff;font-weight: bold;text-align: center;line-height: 86rpx;margin-top: 50rpx;}
+
+.popupPost{
+	position: fixed;left: 0;right: 0; z-index: 100;bottom: 400rpx;
+}
+.popup{background-color: #fff;border-radius: 40rpx;width: 634rpx;box-sizing: border-box;padding: 54rpx 47rpx 60rpx;text-align: center;margin: auto;}
+.popup-img{width: 318rpx;height: 206rpx;margin: 0 auto;}
+.popup-tip{font-size: 52rpx;color: #333;font-weight: bold;margin-top: 30rpx;text-align: center;}
+.popup-tips{text-align: center;font-size: 32rpx;color: #999;margin: 25rpx auto 0;max-width: 430rpx;}
+.popup-btns{margin-top: 75rpx;justify-content: space-between;}
+.back-home{text-align: center; font-size: 32rpx;color: #2B8CFF;width: 260rpx;height: 86rpx;border-radius: 50rpx;border: 2rpx solid #2B8CFF;justify-content: center;box-sizing: border-box;}
+.check-btn{text-align: center;font-size: 32rpx;color: #fff;width: 260rpx;height: 86rpx;border-radius: 50rpx;background: linear-gradient(90deg, #009AFF 0%, #3FBDFB 100%);justify-content: center;}
+.popup-closePost{
+	position: absolute;
+	left: 0;
+	right: 0;
+	bottom: -154rpx;
+}
+.popup-close{width: 89rpx;height: 89rpx;position: absolute;margin: auto;}
+
+.popup-ipt{margin-top: 55rpx;border: 1rpx solid #707070;border-radius: 15rpx;padding: 20rpx 40rpx;font-size: 32rpx;color: #333;text-align: left;box-sizing: border-box;height: 90rpx;line-height: 50rpx;}
+.placeholder{color: #999;}
+
+
+.ceng{position: fixed;left: 0;top: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.5);z-index: 99;}
+.qrcodePost{
+	position: fixed;
+	left: 0;
+	right: 0;
+	bottom: 400;
+	z-index: 100;
+}
+.qrcode{background-color: #fff;width: 560rpx;border-radius: 15rpx;padding: 30rpx;box-sizing: border-box;text-align: center;margin: auto;}
+.code{font-size: 30rpx;color: #333;font-weight: bold;padding: 30rpx 0 50rpx;justify-content: center;border-top: 1rpx dashed #e9e9e9;}
+.code text{color: #2B8CFF;}
+.copy{font-size: 24rpx;color: #999;border: 1rpx solid #e9e9e9;border-radius: 20rpx;height: 40rpx;line-height: 40rpx;width: 100rpx;margin-left: 15rpx;font-weight: normal;text-align: center;}
+.qr-code{justify-content: center;padding: 50rpx 0;}
+.closePost{
+	position: absolute;left: 0;right: 0;bottom: -90rpx;
+}
+.close{width: 60rpx;height: 60rpx;margin: auto;}
+.code-image{
+	width: 400rpx;
+	height: 400rpx;
+}
+
+.ruzhu{padding: 30rpx 0;justify-content: center;}
+.ruzhu text{font-size: 24rpx;color: #a5a5a5;}
+.ruzhu .rz-text{color: #2B8CFF;margin: 0 10px;}
+
+/* 按钮悬浮 */
+.bot-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;z-index: 50;background-color: #fff;}
+.btn{width: 100%;height: 80rpx;background-color: #2B8CFF;font-size: 30rpx;color: #fff;border-radius: 10rpx;text-align: center;line-height: 80rpx;}
+.btn-red{background-color: #fe0419;}
+/* 商品悬浮 */
+.product-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;background-color: #fff;z-index: 50;border-top: 1rpx solid #f1f1f1;}
+.product-fixed image{width: 100rpx;height: 100rpx;border-radius: 10rpx;margin-right: 20rpx;}
+.product-tit{font-size: 28rpx;color: #333;font-weight: bold;}
+.product-opt{margin-top: 10rpx;justify-content: space-between;}
+.product-price .product-price-m{font-size: 28rpx;color: #C5020B;font-weight: bold;}
+.product-price .product-price-t{font-weight: normal;font-size: 24rpx;margin-left: 10rpx;color: #252A3B;}
+.product-btn{background-color: #2B8CFF;height: 50rpx;border-radius: 25rpx;padding: 0 20rpx;font-size: 28rpx;color: #fff;text-align: center;line-height: 50rpx;}
+/* 优惠券悬浮 */
+.coupon-fixed{position: fixed;left: 0;right: 0;bottom: 0;padding: 30rpx;background-color: #fff;z-index: 50;border-top: 1rpx solid #f1f1f1;}
+.coupon-fixed image{width: 80rpx;height: 80rpx;margin-right: 15rpx;}
+.coupon-fixed .title{font-size: 32rpx;}
+.coupon-fixed .money{justify-content: flex-start;}
+.coupon-fixed .money text{font-size: 30rpx;}
+.coupon-fixed .money .texts{font-size: 24rpx;}

+ 953 - 0
library/pageDetail/index_old.vue

@@ -0,0 +1,953 @@
+<template>
+	<view class="page-view">
+		<block v-if="jsonContent && jsonContent.length > 0" v-for="(item, index) in jsonContent" tid="index">
+			<view class="ban" v-if="item.key == 'banner'">
+				<swiper class="swiper" @change="swiperChange" autoplay="true" interval="5000" duration="300">
+					<block v-for="(it,idx) in item.value.imageList" tid="idx">
+						<swiper-item>
+							<image lazy-load="true" :src="it.src" mode="aspectFill" @click="clickBanner(item)"></image>
+						</swiper-item>
+					</block>
+				</swiper>
+				<view class="dots ddflex">
+					<block v-for="(it,idx) in item.value.imageList" tid="idx"><view :class="['dot', idx == swiperCurrent ? 'active' : '']"></view></block>
+				</view>
+			</view>
+			<view class="form" v-if="item.key == 'applicationForm'">
+				<text class="form-title" v-if="item.value.title.isShow">{{ item.value.title.value }}</text>
+				<view class="form-list">
+					<view class="li ddflex" v-for="(it,idx) in item.value.formItemList" tid="idx">
+						<block v-if="it.type == 1">
+							<!-- <input value="{{it.fieldValue}}" placeholder="{{'请填写0' + it.label}}" placeholder-class="placeholder" class="ipt fflex" if="{{it.dataType == 1}}" data-item="{{it}}" @change="changeFieldValue"/>
+							<block else> -->
+									<!-- if="{{isInclude(it.label, '手机')}}" -->
+								<input
+								    v-if="it.dataType == 1"
+								    :value="it.fieldValue"
+									:placeholder="'请填写' + it.label"
+									placeholder-class="placeholder"
+									maxlength="11"
+									:data-item="it"
+									type="tel"
+									@change="changeFieldValue"
+									class="ipt fflex"
+								/>
+								<input v-else 
+								:value="it.fieldValue"  
+								:placeholder="'请填写' + it.label" 
+								placeholder-class="placeholder" 
+								class="ipt fflex" 
+								:data-item="it"
+								@change="changeFieldValue"/>
+							<!-- </block> -->
+						</block>
+						<textarea
+							:value="it.fieldValue"
+							:placeholder="'请填写' + it.label"
+							placeholder-class="placeholder"
+							class="textarea fflex"
+							v-else-if="it.type == 4"
+							:data-item="it"
+							@change="changeFieldValue"
+						></textarea>
+						<!-- <picker :range="it.option" class="pickers fflex" @change="changeOptions($event, idx)" v-else-if="it.type == 5">
+							<text if="it.fieldValue">{{ it.fieldValue }}</text>
+							<text class="placeholder" else>请选择{{ it.label }}</text>
+						</picker> -->
+					</view>
+				</view>
+				<view class="form-btn" id="view-box" @click="formSubmit(item.value)">{{ item.value.buttonName }}</view>
+			</view>
+			<view class="richText" v-if="item.key == 'text'">
+				 <richtext type="html">{{item.value.content}}</richtext>
+				</view>
+			<block v-if="item.key == 'product'">
+				<view class="product flex-col ddflex" v-if="item.value.layoutNum == 1">
+					<view class="li ddflex" v-for="(it,idx) in item.value.productList" tid="idx" @click="jumpUrl('/product/detail', {id:it.id})">
+						<image :src="it.pic" mode="aspectFill" class="pro-img"></image>
+						<view class="pro-info fflex">
+							<text class="pro-name tovers">{{ it.title }}</text>
+							<text class="pro-bri tover" v-if="it.brief">{{ it.brief }}</text>
+							<view class="pro-opt ddflex">
+								<view class="money">
+									<text>¥{{ it.minSalePrice }}</text>
+									<text class="texts">/起</text>
+								</view>
+								<text class="pro-btn">立即购买</text>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="product2 ddflex" v-if="item.value.layoutNum == 2">
+					<view class="li" v-for="(it, idx) in item.value.productList" tid="idx" @click="jumpUrl('/product/detail', {id:it.id})">
+						<image :src="it.pic" mode="aspectFill" class="pro-img"></image>
+						<view class="pro-info fflex">
+							<text class="pro-name tovers">{{ it.title }}</text>
+							<view class="pro-opt ddflex">
+								<view class="money">
+									<text>¥{{ it.minSalePrice }}</text>
+									<text class="texts">/起</text>
+								</view>
+								<view class="pro-cart"><image src="../../assets/static/pages/images/jia.png"></image></view>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="product product3 flex-col ddflex" v-if="item.value.layoutNum == 3">
+					<scroll-view scroll-x="true">
+						<view class="li" v-for="(it,idx) in item.value.productList" tid="idx" @click="jumpUrl('/product/detail', {id:it.id})">
+							<view class="ddflex">
+								<image :src="it.pic" mode="aspectFill" class="pro-img"></image>
+								<view class="pro-info fflex">
+									<text class="pro-name tovers">{{ it.title }}</text>
+									<text class="pro-bri tover" v-if="it.brief">{{ it.brief }}</text>
+									<view class="pro-opt ddflex">
+										<view class="money">
+											<text>¥{{ it.minSalePrice }}</text>
+											<text class="texts">/起</text>
+										</view>
+										<text class="pro-btn">立即购买</text>
+									</view>
+								</view>
+							</view>
+						</view>
+					</scroll-view>
+				</view>
+			</block>
+			<view class="images" v-if="item.key == 'images'"><image :src="item.value.src" mode="widthFix"></image></view>
+			<block v-if="item.key == 'customerService'">
+				<!-- 企微客服 -->
+				<view class="contact ddflex" @click="customerServiceChat(item.value)" v-if="item.value.type == '1'">
+					<image src="../../assets/static/pages/images/kfico.png"></image>
+					<text>客服</text>
+				</view>
+				<!-- 第三方客服 -->
+				<view class="contact ddflex" @click="jumpHref(item.value)" v-if="item.value.type == '2'">
+					<image src="../../static/pages/images/kfico.png"></image>客服
+				</view>
+				<!-- 微信客服、内置客服页面 -->
+				<button open-type="contact" class="contact ddflex" v-if="item.value.type == '0' || item.value.type == '3'">
+					<image src="../../assets/static/pages/images/kfico.png"></image>
+					<text>客服</text>
+				</button>
+			</block>
+
+			<view class="coupon flex-col ddflex" v-if="item.key == 'coupon'">
+				<!-- <view class="tag">免费领取</view> -->
+				<view class="form-title">
+					<view>
+						<text>{{ item.value.couponTitle }}</text>
+					</view>
+				</view>
+				<view class="coupon-list flex-col ddflex">
+					<view class="li flex-col ddflex" v-for="(it,indexx) in item.value.couponList" tid="indexx">
+						<view class="info ddflex">
+							<view class="left-pic"><image :src="it.couponIcon?it.couponIcon:'../../assets/static/pages/images/coup_logo.jpg'" mode="aspectFill"></image></view>
+							<view class="fflex flex-col ddflex">
+								<text class="title">{{ it.couponTitle }}</text>
+								<text class="time">{{ getDateFormat(it.couponStart) }}-{{ getDateFormat(it.couponEnd) }}</text>
+							</view>
+							<view class="info-r flex-col ddflex">
+								<view class="money">
+									<text class="texts">¥</text>
+									<text>{{ it.couponAmount }}</text>
+								</view>
+								<text class="man">{{ it.couponBrief }}</text>
+							</view>
+						</view>
+						<view class="li-bot ddflex">
+							<view class="check ddflex fflex" @click="checks(it)">
+								<text>查看详情</text>
+								<image v-if="!it.isShow" src="../../assets/static/pages/images/bico.png"></image>
+								<image v-else src="../../assets/static/pages/images/bico.png" class="bico_h"></image>
+							</view>
+							<!-- <image src="../../static/images/ma_dark.png" class="yong-ma"></image> -->
+							<block v-if="it.userCount >= it.userReceive && it.userCount != 0 && it.userReceive != -1">
+								<text class="yong ddflex" @click="jumpUrl('pages/mine/coupons')">去使用</text>
+							</block>
+							<block v-else>
+								<text
+									@click="getCoupon(it)"
+									class="yong ddflex"
+									v-if="item.value.btnBackground.length == 2"
+									:style="'background: linear-gradient(90deg, ' + item.value.btnBackground[0] + ' 0%, ' + item.value.btnBackground[1] + ' 100%);'"
+								>
+									{{ item.value.buttonName }}
+								</text>
+								<text
+									@click="getCoupon(it)"
+									class="yong ddflex"
+									v-else-if="item.value.btnBackground.length == 1"
+									:style="'background: ' + item.value.btnBackground[0] + ';'"
+								>
+									{{ item.value.buttonName }}
+								</text>
+								<text class="yong ddflex" v-else @click="getCoupon(it)">{{ item.value.buttonName }}</text>
+							</block>
+						</view>
+						<view class="infos" v-if="it.isShow">
+							<text>使用范围:{{ it.couponBrief }}</text>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="coupon flex-col ddflex" v-if="item.key == 'recharge'">
+				<text class="tag">快捷充值</text>
+				<view class="form-title">
+					<view>
+						<text>{{ item.value.rechargeTitle }}</text>
+					</view>
+				</view>
+				<view class="recharge flex-col ddflex">
+					<view :class="'dflex rechargeId' + (isInt ? ' on' : '')">
+						<text v-if="item.value.showSymbol">¥</text>
+						<input
+							:placeholder="item.value.placeholderText ? item.value.placeholderText : '点击输入充值金额'"
+							placeholder-class="placeholder"
+							:value="pay"
+							type="number"
+							@change="amount"
+							@focus="focus"
+						/>
+					</view>
+					<text class="rechargeMoney" v-if="TabList && TabList.length > 0">快捷充值</text>
+					<view class="rechargeul dflex" v-if="TabList && TabList.length > 0">
+						<!--选中 加class active -->
+						<view :class="'rechargeli '+(it.active ?'rechargeli-active':'')" v-for="(it,index) in TabList" tid="index" @click="switchTab(it, index)">
+							<text :class="'wealth '+ (item.active ?' awealth':'')">充{{ it.rechargeAmount }}元</text>
+							<!-- <view class="give awealth">
+								送40元
+							</view> -->
+						</view>
+					</view>
+				</view>
+				<text
+					class="chongzhi"
+					id="view-box"
+					@click="remainder()"
+					:style="item.value.mainColor ? 'background-color: ' + item.value.mainColor + ';border: 1px solid ' + item.value.mainColor + ';' : ''"
+				>
+					{{ item.value.buttonName }}
+				</text>
+			</view>
+		</block>
+
+		<block v-if="jsonContent && jsonContent.length > 0" v-for="(item,index) in jsonContent" :key="index">
+			<block v-if="item.key == 'fixedNode'">
+				<block v-if="item.value.type == 'applicationForm' || item.value.type == 'recharge'">
+					<block v-if="isShowBotFixed">
+						<view style="height: 140px;"></view>
+						<view class="bot-fixed">
+							<view :class="'btn'+(item.value.type == 'recharge' ? ' btn-red':'')" @click="anchor(item.value.type == 'applicationForm' ? 'form':'recharge')">{{item.value.contentObj.value.buttonName}}</view>
+						</view>
+					</block>
+				</block>
+				<block v-if="item.value.type == 'product'">
+					<view style="height: 160px;"></view>
+					<block v-for="(it,idx) in item.value.contentObj.value.productList" :key="idx">
+						<view class="product-fixed ddflex" v-if="it.isFixedNode" @click="jumpUrl('pages/product/detail', {id:it.id})">
+							<image :src="it.pic" mode="aspectFill"></image>
+							<view class="fflex flex-col">
+								<view class="product-tit tover">{{it.title}}</view>
+								<view class="product-opt ddflex">
+									<view class="product-price">
+									<view class="product-price-m">¥{{ it.minSalePrice }}</view>
+									<!-- <text class="product-price-t">/起</text> -->
+									</view>
+									<view class="product-btn">立即购买</view>
+								</view>
+							</view>
+						</view>
+					</block>
+				</block>
+				<block v-if="item.value.type == 'coupon'">
+					<view style="height: 140px;"></view>
+					<block v-for="(it,idx) in item.value.contentObj.value.couponList" :key="idx">
+						<view class="coupon-fixed ddflex" v-if="it.isFixedNode">
+							<image :src="it.couponIcon" mode="aspectFill" v-if="it.couponIcon"></image>
+							<view class="fflex flex-col">
+								<view class="title tover">{{it.couponTitle}}</view>
+								<view class="money">
+									<view class="texts">¥</view>
+									<view>{{ it.couponAmount }}</view>
+								</view>
+							</view>
+							<block v-if="it.userCount >= it.userReceive && it.userCount != 0 && it.userReceive != -1">
+								<view class="yong ddflex" @click="jumpUrl('pages/mine/coupons')">去使用</view>
+							</block>
+							<block v-else>
+								<view
+									@click="getCoupon(it)"
+									class="yong ddflex"
+									v-if="item.value.contentObj.value.btnBackground.length == 2"
+									:style="'background: linear-gradient(90deg, ' + item.value.contentObj.value.btnBackground[0] + ' 0%, ' + item.value.contentObj.value.btnBackground[1] + ' 100%);'"
+								>
+									{{ item.value.contentObj.value.buttonName }}
+								</view>
+								<view
+									@click="getCoupon(it)"
+									class="yong ddflex"
+									v-else-if="item.value.contentObj.value.btnBackground.length == 1"
+									:style="'background: ' + item.value.contentObj.value.btnBackground[0] + ';'"
+								>
+									{{ item.value.contentObj.value.buttonName }}
+								</view>
+								<view class="yong ddflex" v-else @click="getCoupon(it)">{{ item.value.contentObj.value.buttonName }}</view>
+							</block>
+						</view>
+					</block>
+				</block>
+			</block>
+		</block>
+	
+		<view class="mask" v-if="isShowMask"></view>
+		<!-- <view class="guide" :style="'top:'+37+'rpx;'">
+			<view class="guide-tit">点这里更多操作</view>
+			<view class="guide-tip">领取优惠不迷路</view>
+			<view class="guide-s ddflex"><image src="../../static/images/cz_jia.png"></image>添加到桌面</view>
+			<view class="guide-s ddflex"><image src="../../static/images/cz_home.png"></image>返回首页</view>
+			<view class="guide-btn">我知道了</view>
+		</view> -->
+		<view class="popupPost" v-if="isShowBMDialogView">
+			<view class="popup flex-col ddflex" v-if="isShowBMDialogView">
+				<image src="../../assets/static/images/popup_tip.png" class="popup-img"></image>
+				<text class="popup-tip">提交成功</text>
+				<text class="popup-tips">你的信息已提交,会有专业人员联系你,请耐心等待</text>
+				<view class="popup-btns ddflex">
+					<text class="back-home ddflex" @click="goHome()">去首页</text>
+					<text class="check-btn ddflex" @click="hintDialogView()">确定</text>
+				</view>
+				<view class="popup-closePost">
+					<image src="../../assets/static/images/popup_close.png" class="popup-close" @click="hintDialogView()"></image>
+				</view>
+			</view>
+		</view>
+
+		<view class="popupPost" v-if="isShowRemainderDialogView">
+			<view class="popup flex-col ddflex" v-if="isShowRemainderDialogView">
+				<image src="../../assets/static/images/popup_tip.png" class="popup-img"></image>
+				<text class="popup-tip">充值成功</text>
+				<text class="popup-tips">充值已成功,可前往“我的钱包”查看余额</text>
+				<view class="popup-btns ddflex">
+					<text class="back-home ddflex" @click="goHome()">去首页</text>
+					<text class="check-btn ddflex" @click="jumpUrl('pages/wallet/index')">查看余额</text>
+				</view>
+				<image src="../../assets/static/images/popup_close.png" class="popup-close" @click="hintDialogView()"></image>
+			</view>
+		</view>
+
+		<view class="popupPost" v-if="isShowCouponDialogView">
+			<view class="popup flex-col ddflex" v-if="isShowCouponDialogView">
+				<image src="../../assets/static/images/popup_tip.png" class="popup-img"></image>
+				<text class="popup-tip">领取成功</text>
+				<text class="popup-tips">已存入“我的优惠券”中,可前往查看使用</text>
+				<view class="popup-btns ddflex">
+					<text class="back-home ddflex" @click="jumpUrl('pages/mine/coupons')">我的优惠券</text>
+					<text class="check-btn ddflex" @click="createCode()">立即使用</text>
+				</view>
+				<image src="../../assets/static/images/popup_close.png" class="popup-close" @click="hintDialogView()"></image>
+			</view>
+		</view>
+
+		<view class="popupPost" v-if="isShowBindMobileView">
+			<view class="popup flex-col ddflex" v-if="isShowBindMobileView">
+				<text class="popup-tip">验证手机号</text>
+				<text class="popup-tips">该手机号仅用于线下核销验证请放心填写</text>
+				<input :value="phoneNumberValue" maxlength="11" type="number" placeholder="请输入手机号" placeholder-class="placeholder" class="popup-ipt" @change="phoneNumberChange" />
+				<view class="popup-btns ddflex" style="margin-top: 60rpx">
+					<text class="back-home ddflex" @click="hintBindMobileView()">取消</text>
+					<text class="check-btn ddflex" @click="confirmBundMoble()">确定</text>
+				</view>
+				<image src="../../assets/static/images/popup_close.png" class="popup-close" @click="hintDialogView()"></image>
+			</view>
+		</view>
+
+		<view class="ceng" v-if="isShowCard" @click="hideCardPop()"></view>
+		<view class="qrcodePost" v-if="isShowCard">
+			<view class="qrcode flex-col ddflex" v-if="isShowCard">
+			<text class="hintt">{{ currentCard.couponTitle }}</text>
+			<view class="qr-code ddflex">
+				<image class="code-image" :src="currentCard.qrCodeUri"></image>
+			</view>
+			<view class="code ddflex">
+				<text>{{ currentCard.id }}</text>
+				<text class="copy" @click="copyCode()">复制</text>
+			</view>
+			<text class="hittext">- 请将二维码出示给店员核销使用 -</text>
+			<view class="closePost">
+				<image src="../../assets/static/pages/images/close2.png" class="close" @click="hideCardPop()"></image>
+			</view>
+		</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import req from '../../utils/request.js'
+import util from '../../utils/util.js'
+import route from '../../utils/route.js'
+
+export default {
+	data() {
+		return {
+			code: '',
+			systems: {},
+			params: '',
+			jsonContent: '',
+			swiperCurrent: 0,
+			hideShare: true,
+			codeUrl: '',
+			sessionKey: '',
+			openid: '',
+			userInfo: {},
+			isShow: false,
+			
+			//充值
+			TabList: [],
+			money: '',
+			id: '',
+			pay: '',
+			active: false,
+			isInt: false,
+			orderId: '',
+			
+			checkCoupon: '', //选中的优惠券
+			isOpenHuaweiMobile: '', //判断是否在华为上使用手机号授权
+			
+			isHuawei: false,
+			isShowMask: false,
+			isShowBMDialogView: false,
+			isShowBindMobileView: false,
+			phoneNumberValue: '',
+			isShowRemainderDialogView: false,
+			isShowCouponDialogView: false,
+			
+			isCoupon: false, //是否为优惠券
+			isRemainder: false, //是否为充值
+			//使用用券
+			isShowCard: false,
+			currentCard: {},
+			ruzhuItem: '',
+
+			isShowBotFixed: true,//是否显示悬浮按钮
+			windowHeight: '',
+		}
+	},
+	async onLoad(options) {
+		console.log(options)
+		this.code = options.code
+		this.getAbout();
+		await this.getParams();
+	},
+	async onShow() {
+		var userInfosStr = await req.getStorage('userInfo');
+		if (userInfosStr) {
+			this.userInfo = userInfosStr
+		}
+		if (this.orderId) {
+			let i = 0;
+			req.loadIng();
+			let timer = setInterval(() => {
+				route.balanceStare(
+					{
+						logsId: this.orderId
+					},
+					res => {
+						if (res.isSuccess || i === 4) {
+							req.hideLoading();
+							this.orderId = '';
+							this.pay = '';
+							clearInterval(timer);
+							if (res.isSuccess) {
+								this.showRemainderDialogView();
+							}
+						} else {
+							i++;
+						}
+					}
+				);
+			}, 300);
+		}
+	},
+	methods: {
+		goHome() {
+			this.hintDialogView();
+			uni.navigateBack()
+		},
+		getAbout() {
+			var _this = this;
+			req.getRequest('/api/other/config', {}, function (res) {
+				_this.isOpenHuaweiMobile = res.isOpenHuaweiMobile;
+			});
+		},
+		// 余额充值
+		async remainder() {
+			this.isCoupon = false; //是否为优惠券
+			this.isRemainder = true; //是否为充值
+			if (!await req.isLogins(true)) {
+				return;
+			}
+			let that = this;
+			let from = {};
+			if (this.pay && this.pay > 0) {
+				from.money = this.pay;
+			} else {
+				return req.msg('输入的充值金额需大于0');
+			}
+			route.remainder(from, data => {
+				that.orderId = data;
+				if (!data) {
+					return req.msg('充值下单失败');
+				} else {
+					route.balancePay(data, '4', that.pay, res => {
+						if (res) {
+						}
+					});
+				}
+			});
+		},
+		
+		switchTab(item, index) {
+			this.TabList.map(it => {
+				it.active = false;
+			});
+			this.TabList[index].active = true;
+			this.pay = item.rechargeAmount;
+		},
+		
+		// 输入金额根据输入金额获取赠送多少金额
+		amount(e) {
+			console.log('输入框中的金额>>>>', e.text);
+			let money = e.text;
+			this.pay = money;
+		},
+		
+		focus(e) {
+			this.isInt = true;
+			this.TabList.map(it => {
+				it.active = false;
+			});
+		},
+		
+		getCouponBtnText(item, name) {
+			return item.userCount >= item.userReceive && item.userCount != 0 && item.userReceive != -1 ? '已领取' : 'name';
+		},
+		
+		showBindMobileView() {
+			this.isShowMask = true;
+			this.isShowBindMobileView = true;
+		},
+		
+		hintBindMobileView() {
+			this.isShowMask = false;
+			this.isShowBindMobileView = false;
+		},
+		
+		showRemainderDialogView() {
+			this.isShowMask = true;
+			this.isShowRemainderDialogView = true;
+		},
+		
+		hintRemainderDialogView() {
+			this.isShowMask = false;
+			this.isShowRemainderDialogView = false;
+		},
+		
+		showCouponDialogView() {
+			this.isShowMask = true;
+			this.isShowCouponDialogView = true;
+		},
+		
+		hintCouponDialogView() {
+			this.isShowMask = false;
+			this.isShowCouponDialogView = false;
+		},
+		
+		showBMDialogView() {
+			this.isShowMask = true;
+			this.isShowBMDialogView = true;
+		},
+		
+		hintBMDialogView() {
+			this.isShowMask = false;
+			this.isShowBMDialogView = false;
+		},
+		
+		hintDialogView() {
+			this.hintRemainderDialogView();
+			this.hintBindMobileView();
+			this.hintCouponDialogView();
+			this.hintBMDialogView();
+		},
+		
+		createCode() {
+			if (this.currentCard) {
+				this.isShowCard = true;
+			} else {
+				this.jumpUrl('pages/mine/coupons');
+			}
+			this.hintDialogView();
+		},
+		hideCardPop() {
+			this.isShowCard = false;
+		},
+		
+		copyCode() {
+			uni.setClipboardData({
+				data: this.currentCard.id,
+				success: function(res) {
+					req.msg('复制成功');
+				}
+			});
+		},
+		
+		phoneNumberChange(ev) {
+			this.phoneNumberValue = ev.text;
+		},
+		
+		/**
+		 * 确定设置手机号
+		 */
+		confirmBundMoble() {
+			if (!this.phoneNumberValue) {
+				req.msg('请输入手机号');
+				return;
+			}
+			if (!util.isMobile(this.phoneNumberValue)) {
+				req.msg('请输入11位有效手机号');
+				return;
+			}
+			req.loadIng();
+			this.bundMoble(this.phoneNumberValue);
+			this.hintBindMobileView();
+		},
+		
+		/**
+		 * 领取优惠券
+		 * @param {Object} item
+		 */
+		async getCoupon(item) {
+			console.log('数据>>>>>>>>', item);
+			this.isCoupon = true; //是否为优惠券
+			this.isRemainder = false; //是否为充值
+			this.checkCoupon = item;
+			if (!await req.isLogins(true)) {
+				return;
+			}
+			let _ts = this;
+			if (!_ts.userInfo.mobile) {
+				req.getPhoneNumber(res => {
+					_ts.bundMoble(res);
+				});
+				return;
+			}
+			this.couponReceive();
+		},
+		
+		couponReceive() {
+			var that = this;
+			if (this.checkCoupon.userReceive > -1 && this.checkCoupon.userCount >= this.checkCoupon.userReceive) {
+				return req.msg('您已领取过了');
+			}
+			req.postRequest(
+				'/api/coupon/receive',
+				{
+					id: this.checkCoupon.id
+				},
+				res => {
+					this.currentCard = res;
+					console.log('领取完成>>>>', this.currentCard);
+					this.getParams();
+					this.showCouponDialogView();
+				},
+				true
+			);
+		},
+		
+		/**
+		 * 绑定手机号
+		 */
+		bundMoble(mobile) {
+			req.postRequest(
+				'/api/noCode/mobile',
+				{
+					mobile: mobile
+				},
+				res => {
+					this.isShowBindMobileView = false;
+					this.userInfo = res;
+					req.setStorage('userInfo', res);
+					req.hideLoading();
+					this.couponReceive();
+				},
+				true
+			);
+		},
+		
+		checks(item, index) {
+			item.isShow = !item.isShow;
+			this.$forceUpdate();
+		},
+		getParams() {
+				let that = this;
+				let params = {
+					code: this.code
+				};
+				return new Promise((resolve, reject) => {
+					req.getRequest(
+						'/api/material/library/detail',
+						params,
+						data => {
+							data.params.jsonContent.map(item => {
+								if (item.key == 'applicationForm') {
+									//表单
+									item.value.formItemList.map(it => {
+										if (it.label.indexOf('姓名') > -1) {
+											if (that.userInfo.nickName) {
+												it.fieldValue = that.userInfo.nickName;
+											}
+										}
+										if (it.label.indexOf('手机') > -1) {
+											if (that.userInfo.mobile) {
+												it.fieldValue = that.userInfo.mobile;
+											}
+										}
+										if (it.type == 4) {
+											//备注
+											it.fieldValue = '';
+										}
+										if (it.type == 5) {
+											it.option = ['大健康', '快销品'];
+										}
+									});
+								} else if (item.key == 'recharge') {
+									//充值
+									if (item.value.fastRechargeList && item.value.fastRechargeList.length > 0) {
+										that.TabList = item.value.fastRechargeList.map(it => {
+											var itm = {
+												rechargeAmount: it,
+												active: false
+											};
+											return itm;
+										});
+										if (that.TabList && that.TabList.length > 0) {
+											that.TabList[0].active = true;
+											that.pay = that.TabList[0].rechargeAmount;
+										}
+										console.log('TabList数据====', that.TabList);
+									}
+								} else if (item.key == 'coupon') {
+									if (item.value.couponList && item.value.couponList.length > 0) {
+										item.value.couponList.map(itx => {
+											itx.isShow = false;
+											return itx;
+										})
+									}
+								}
+								return item;
+							});
+							that.params = data;
+							that.jsonContent = data.params.jsonContent;
+							uni.setNavigationBarTitle({
+								title:data.title
+							})
+							console.log('data.title==', data.title);
+							console.log('data.params.jsonContent==', data.params.jsonContent);
+							resolve();
+						},
+						true
+					);
+				});
+			},
+		swiperChange(e) {
+			this.swiperCurrent = e.index;
+		},
+		async jumpUrl(url) {
+			this.hintDialogView();
+			if (await req.isLogins(true)) {
+				uni.navigateTo({
+					url:url
+				})
+			}
+		},
+		
+		jumpUrlCS() {
+			// router.push({
+			// 	uri: '/pages/pagecontent',
+			// });
+		},
+		
+		customerServiceChat(item) {
+			wx.openCustomerServiceChat({
+				extInfo: {
+					url: item.target
+				},
+				corpId: item.id,
+				success(res) {
+					console.log('调用微信客服')
+				}
+			})
+		},
+		jumpHref(item) {
+			window.location.href = item.target;
+		},
+		
+		isInclude(label, keytxt) {
+			return label.indexOf(keytxt) != -1;
+		},
+		
+		changeOptions(e, idx) {
+			console.log('选择==', e);
+			console.log('idx==', idx);
+			this.jsonContent.map(item => {
+				if (item.key == 'applicationForm') {
+					item.value.formItemList.map((it, index) => {
+						if (it.type == 5 && idx == index) {
+							it.fieldValue = it.option[e.detail.value];
+						}
+					});
+				}
+				return item;
+			});
+			this.$forceUpdate();
+		},
+		
+		changeFieldValue(ev) {
+			ev._currentTarget._dataset.item.fieldValue = ev.text;
+		},
+		
+		checkRequire(formItemList) {
+			for (var i = 0; i < formItemList.length; i++) {
+				if (formItemList[i].required) {
+					//不等于备注,并且为空时返回
+					if (!this.isInclude(formItemList[i].label, '备注') && !formItemList[i].fieldValue) {
+						req.msg('请填写' + formItemList[i].label);
+						return false;
+					}
+					if (formItemList[i].type == 1 && this.isInclude(formItemList[i].label, '手机')) {
+						if (!util.isMobile(formItemList[i].fieldValue)) {
+							req.msg('请输入11位有效手机号');
+							return false;
+						}
+					}
+				}
+			}
+			return true;
+		},
+		
+		/**
+		 * 提交报名表单
+		 * @param {Object} datas
+		 */
+		formSubmit(datas) {
+			// if (!req.isLogins(true)) {
+			// 	return;
+			// }
+			let params = {
+				formId: datas.database
+			};
+			if (this.userInfo.id) {
+				params.belongUid = this.userInfo.id;
+			}
+			let formItemList = datas.formItemList;
+			let valueList = [];
+			if (!this.checkRequire(formItemList)) return false;
+			formItemList.map(it => {
+				let obj = {
+					fieldId: it.databaseLabel,
+					fieldName: it.label,
+					fieldType: it.type,
+					fieldValue: it.fieldValue
+				};
+				valueList.push(obj);
+			});
+			params.valueList = valueList;
+			console.log('表单提交==', params);
+			req.postRequest(
+				'/api/v3/custom/form/submit',
+				params,
+				data => {
+					this.showBMDialogView();
+				},
+				true
+			);
+		},
+		callPhone(phone) {
+			uni.makePhoneCall({
+				phoneNumber: phone
+			});
+		},
+		// 时间格式化
+		getDateFormat(date) {
+			return util.formatTime(new Date(date)).t3;
+		},
+		anchor(id) {
+				let that = this;
+				let query = that.$element(id);
+				let top = that.$element('topId');
+				top.getBoundingClientRect({
+					success: (data) => {
+						query.getBoundingClientRect({
+							success: (res) => {
+								that.$page.scrollTo({top:res.top - data.top - 100, behavior:'smooth'})
+							}
+						});
+					}
+				});
+			},
+			getDevideInfo() {
+				let that = this;
+				device.getInfo({
+					success: function (ret) {
+						// px转换到rpx的比例
+						let pxToRpxScale = 800 / ret.windowWidth;
+						let systems = {
+							ktxStatusHeight: ret.statusBarHeight * pxToRpxScale, // 状态栏的高度
+							navigationHeight: 44 * pxToRpxScale // 导航栏的高度
+						};
+						systems.barHeight = systems.ktxStatusHeight + systems.navigationHeight;
+						that.systems = systems;
+						that.windowHeight = ret.windowHeight;
+						console.log('ret==',ret)
+					}
+				});
+			},
+	},
+	onPageScroll(e) {
+			console.log('滚动==',e)
+			var that = this;
+			let query = uni.createSelectorQuery().in(this).select('#view-box');
+			if(query){
+				query.boundingClientRect(data=>{
+					console.log('data==',data.top,data.height)
+					if (data.top <= 0) {
+						that.isShowBotFixed = true;
+					}else if (data.top-data.height > that.windowHeight) {// 向下滑动
+						that.isShowBotFixed = true;
+					}else{
+						that.isShowBotFixed = false;
+					}
+				}).exec();
+			}
+		},
+	mounted() {
+		const systemInfo = uni.getSystemInfoSync();
+		// px转换到rpx的比例
+		let pxToRpxScale = 750 / systemInfo.windowWidth;
+		let systems = {
+			ktxStatusHeight: systemInfo.statusBarHeight * pxToRpxScale, // 状态栏的高度
+			navigationHeight: 44 * pxToRpxScale ,// 导航栏的高度
+			windowHeight:systemInfo.windowHeight
+		};
+		this.windowHeight = systemInfo.windowHeight
+		systems.barHeight = systems.ktxStatusHeight + systems.navigationHeight;
+		this.systems = systems;
+	}
+
+	
+};
+</script>
+
+<style>
+@import './index.css';
+</style>

+ 2 - 0
main.js

@@ -2,11 +2,13 @@ import Vue from 'vue';
 import App from './App';
 import contactButton from "@/components/contact-button/index";
 import updateUserinfo from '@/components/update-userinfo/index';
+import toUserinfo from '@/components/to-userinfo/index';
 
 Vue.config.productionTip = false;
 
 Vue.component("contact-button", contactButton);
 Vue.component("update-userinfo", updateUserinfo);
+Vue.component("to-userinfo", toUserinfo);
 
 
 Vue.mixin({

+ 9 - 1
mine/userinfo/userinfo.vue

@@ -267,7 +267,15 @@
 				};
 				let reg = /^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,20}$/;
 				// console.log(reg.test(d.realName));
+				if(!d.avatar) return req.msg("请上传头像");
+				if(!d.nickName) return req.msg("请填写用户昵称");
+				if(!d.realName) return req.msg("请填写真实姓名");
 				if (!reg.test(d.realName)) return req.msg("请输入正确真实姓名(至少2位汉字)");
+				if(!d.cardNo) return req.msg("请填写身份证号");
+				if(!d.mobile) return req.msg("请填写手机号");
+				if(!d.birthday) return req.msg("请选择出生日期");
+				if(!d.district) return req.msg("请选择地区");
+				if(!d.address) return req.msg("请填写详细地址");
 				let isShowLoading = false;
 				if (!isShowLoading) {
 					req.loadIng('保存中');
@@ -284,7 +292,7 @@
 						if (isShowLoading) {
 							uni.hideLoading();
 							this.getInfo();
-							app.globalData.switchTab('pages/user/user');
+							uni.navigateBack()
 							isShowLoading = false;
 						}
 					});

+ 3 - 7
pages/index/index.vue

@@ -302,9 +302,8 @@
 				<view :class="'chat-lyl '+(!chatShowText?'chat-lyl2':'')">聊一聊</view>
 			</view>
 		</view>
-		
-		<update-userinfo :update-info="isUpdateInfo" :update-mobile="isUpdateMobile" v-if="isShowUpdate"
-			@closeUpdate="closeUpdate" @updateInfo="updateInfo" @updateMobile="updateMobile"></update-userinfo>
+			
+		<to-userinfo v-if="isShowUpdate"></to-userinfo>
 	</view>
 </template>
 
@@ -419,8 +418,6 @@
 				userInfo:{},
 				
 				isShowUpdate: false, //是否显示更新信息弹窗
-				isUpdateInfo: false, //更新用户信息
-				isUpdateMobile: false, //绑定手机号
 				
 				firstLoad:true,//第一次加载页面
 			};
@@ -484,9 +481,8 @@
 				this.userInfo = req.getStorage('userInfo')
 				
 				console.log('onShow',req.getStorage('userInfo'))
-				if (!this.userInfo.mobile&&this.firstLoad==true) {
+				if (this.firstLoad==true) {
 					this.isShowUpdate = true;
-					this.isUpdateMobile = true;
 				}
 				this.firstLoad = false
 			},500)

+ 5 - 19
pages/user/user.vue

@@ -192,8 +192,8 @@
 		<view style="height: 80rpx;"></view>
 		<!-- <view class="placeholder-view" :style="'height:' + (bottomBlankHeignt + 115) + 'rpx'"></view> -->
 		<foot channel="user"></foot>
-		<update-userinfo :update-info="isUpdateInfo" :update-mobile="isUpdateMobile" v-if="isShowUpdate"
-			@closeUpdate="closeUpdate" @updateInfo="updateInfo" @updateMobile="updateMobile"></update-userinfo>
+		
+		<to-userinfo v-if="isShowUpdate"></to-userinfo>
 
 
 		<msgNumber bottom="230rpx"></msgNumber>
@@ -264,8 +264,6 @@
 				userInfo: {},
 				userInfos: {},
 				isShowUpdate: false, //是否显示更新信息弹窗
-				isUpdateInfo: false, //更新用户信息
-				isUpdateMobile: false, //绑定手机号
 				recommendCard:'',
 				isShowCodePop:false,
 				isShowBind:false,
@@ -305,15 +303,8 @@
 			let userInfo = req.getStorage('userInfo');
 			if (req.isAuth()) {
 				setTimeout(res => {
-					if (!userInfo.avatar || userInfo.nickName == '微信用户' || this.userInfos.nickName == '微信用户') {
-						this.isShowUpdate = true;
-						this.isUpdateInfo = true;
-					}
-					if (userInfo.avatar && !userInfo.mobile && (this.userInfos && !this.userInfos.mobile)) {
-						this.isShowUpdate = true;
-						this.isUpdateMobile = true;
-					}
-				}, 2000);
+					this.isShowUpdate = true;
+				}, 500);
 			}
 			// #endif
 		},
@@ -328,13 +319,8 @@
 				this.noLogin = true;
 				
 				console.log("userInfo",userInfo)
-				if(userInfo.avatar && this.isShowUpdate == true && this.isUpdateInfo == true){
-					this.isShowUpdate = false;
-					this.isUpdateInfo = false;
-				}
-				if (userInfo.mobile && this.isUpdateMobile == false) {
+				if(this.isShowUpdate == true){
 					this.isShowUpdate = false;
-					this.isUpdateMobile = false;
 				}
 				
 			} else {

BIN
static/images/editInfo.png


Some files were not shown because too many files changed in this diff