cmy hai 1 ano
pai
achega
138deaf2db

+ 12 - 5
App.vue

@@ -8,7 +8,7 @@
 	import {
 		getShopConfig,
 		silenceAuth,
-		getLogo
+		// getLogo
 	} from '@/api/public';
 	import Auth from '@/libs/wechat.js';
 	import Routine from './libs/routine.js';
@@ -33,7 +33,9 @@
 		'--view-theme: #FE5C2D;--view-priceColor:#FE5C2D;--view-minorColor:rgba(254, 92, 45, 0.5);--view-minorColorT:rgba(254, 92, 45, 0.1);--view-bntColor:#FDB000;--view-assistColor:#FDB000;'
 	let gold =
 	    '--view-theme: #E0A558;--view-priceColor:#DA8C18;--view-minorColor:rgba(224, 165, 88, 0.5);--view-minorColorT:rgba(224, 165, 88, 0.1);--view-bntColor:#1A1A1A;'
-
+	// #ifdef APP
+	import { getUpApp } from './utils/upApp.js';
+		// #endif
 
 	export default {
 		globalData: {
@@ -78,9 +80,10 @@
 			plus.screen.lockOrientation("portrait-primary");
 			//#endif
 			let that = this;
-			getLogo().then(res => {
-				uni.setStorageSync('BASIC_CONFIG', res.data)
-			});
+			// 微信授权登录
+			// getLogo().then(res => {
+			// 	uni.setStorageSync('BASIC_CONFIG', res.data)
+			// });
 			colorChange('color_change').then(res => {
 				let navigation = res.data.navigation; //判断悬浮导航是否显示
 				let statusColor = res.data.status; //判断显示啥颜色
@@ -319,6 +322,10 @@
 			// 		})
 			// }
 			// #endif
+			// #ifdef APP
+			// 升级App
+			getUpApp();
+			// #endif
 		},
 		mounted() {
 			// setTimeout((e) => {

+ 10 - 0
api/api.js

@@ -474,6 +474,16 @@ export function getCategoryVersion() {
 		noAuth: true
 	});
 }
+/**
+ * 获取app版本
+ */
+export function getAppVersion() {
+	return request.get('version',{},{
+		noAuth: true
+	});
+}
+
+
 
 
 

+ 22 - 0
api/new.js

@@ -0,0 +1,22 @@
+import request from "@/utils/request.js";
+// 提交证件
+export function employee(data) {
+	return request.post("extract/employee", data, {
+		noAuth: true
+	});
+}
+// 获取外部链接签名
+export function sign_url(data) {
+	return request.get("extract/sign_url", data, {
+		noAuth: true
+	});
+}
+
+// 获取签名信息
+export function bank_info(data) {
+	return request.get("bank_info", data, {
+		noAuth: true
+	});
+}
+
+

+ 3 - 3
manifest.json

@@ -2,8 +2,8 @@
     "name" : "神英优选",
     "appid" : "__UNI__70BC0AE",
     "description" : "神英优选商城",
-    "versionName" : "2.6.0",
-    "versionCode" : 267,
+    "versionName" : "2.7.3",
+    "versionCode" : 273,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {
@@ -235,7 +235,7 @@
         "async" : {
             "timeout" : 200000
         },
-        "title" : "加载中",
+        "title" : "神英优选",
         "template" : "index.html"
     },
     "plus" : {

+ 21 - 0
pages.json

@@ -113,6 +113,19 @@
             }
           }
         },
+		{
+		    "path": "user_cash/WAuth",
+		    "style": {
+		      "navigationBarTitleText": "提现认证",
+		      "app-plus": {
+		        // #ifdef APP-PLUS
+		        "titleNView": {
+		          "type": "default"
+		        }
+		        // #endif
+		      }
+		    }
+		  },
         {
           "path": "privacy/index",
           "style": {
@@ -718,6 +731,14 @@
             }
           }
         },
+		// #ifdef H5
+		{
+		  "path": "login/register",
+		  "style": {
+		    "navigationBarTitleText": "注册"
+		  }
+		},
+		// #endif
 		{
 		  "path": "supplier/index",
 		  "style": {

+ 3 - 3
pages/annex/vip_grade/index.vue

@@ -10,7 +10,7 @@
 						<view>
 							<view class="acea-row row-middle">
 								<view class="nickname line1">{{user_info.nickname}}</view>
-								<view class="name" v-if="level_info.name">{{level_info.name}}</view>
+								<!-- <view class="name" v-if="level_info.name">{{level_info.name}}</view> -->
 								<image :src="level_info.icon" class="levelImage" v-if="level_info.icon"></image>
 							</view>
 							<view class="acea-row row-middle">
@@ -49,8 +49,8 @@
 		</view>
 		<view class="equity">
 			<view class="title acea-row row-between-wrapper">
-				<view>{{level_info.name || ''}}会员尊享权益</view>
-				<view class="more" @click="more">查看更多<text class="iconfont icon-jinru2"></text></view>
+				<view>会员尊享权益</view>
+				<!-- <view class="more" @click="more">查看更多<text class="iconfont icon-jinru2"></text></view> -->
 			</view>
 			<view class="list acea-row row-around row-middle">
 				<view class="item">

+ 11 - 1
pages/goods/order_confirm/index.vue

@@ -894,7 +894,17 @@
         this.pay_close = false;
       },
       goPay() {
-		this.formVerify();
+		  uni.showModal({
+		  	title: '温馨提示',
+		  	content: '此笔交易一旦确认支付,将无法申请退款!(除质量问题可换货)',
+		  	success: res => {
+				if(res.confirm){
+					this.formVerify();
+				}
+			},
+		  	fail: () => {},
+		  	complete: () => {}
+		  });
       },
       payCheck(type) {
         this.payType = type;

+ 82 - 67
pages/index/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <!-- 首页 -->
+	<!-- 首页 -->
 	<view v-if="pageShow" class="page"
 		:class="bgTabVal==2?'fullsize noRepeat':bgTabVal==1?'repeat ysize':'noRepeat ysize'"
 		:style="'background-color:'+bgColor+';background-image: url('+bgPic+');min-height:'+windowHeight+'px;'">
@@ -9,16 +9,17 @@
 				<!-- #ifdef H5 -->
 				<view v-for="(item, index) in styleConfig" :key="index">
 					<component :is="item.name" :index="index" :dataConfig="item" @changeBarg="changeBarg"
-						@detail="goDetail" :isSortType="isSortType" @bindSortId="bindSortId"
-						@bindHeight="bindHeight" :isFixed="isFixed" :productVideoStatus='product_video_status' :isScrolled="isScrolled">
+						@detail="goDetail" :isSortType="isSortType" @bindSortId="bindSortId" @bindHeight="bindHeight"
+						:isFixed="isFixed" :productVideoStatus='product_video_status' :isScrolled="isScrolled">
 					</component>
 				</view>
 				<!-- #endif -->
-				
+
 				<!-- #ifdef MP || APP-PLUS -->
-        <!-- 自定义样式 -->
+				<!-- 自定义样式 -->
 				<block v-for="(item, index) in styleConfig" :key="index">
-					<homeComb v-if="item.name == 'homeComb'" :dataConfig="item" @bindSortId="bindSortId" :isScrolled="isScrolled"></homeComb>
+					<homeComb v-if="item.name == 'homeComb'" :dataConfig="item" @bindSortId="bindSortId"
+						:isScrolled="isScrolled"></homeComb>
 					<shortVideo v-if="item.name == 'shortVideo'" :dataConfig="item" :isSortType="isSortType">
 					</shortVideo>
 					<userInfor v-if="item.name == 'userInfor'" :dataConfig="item" :isSortType="isSortType">
@@ -27,7 +28,7 @@
 					</newVip>
 					<activeParty v-if="item.name == 'activeParty'" :dataConfig="item" :isSortType="isSortType">
 					</activeParty>
-          <!-- 文章列表 -->
+					<!-- 文章列表 -->
 					<articleList v-if="item.name == 'articleList'" :dataConfig="item" :isSortType="isSortType">
 					</articleList>
 					<bargain v-if="item.name == 'bargain'" :dataConfig="item" @changeBarg="changeBarg"
@@ -35,38 +36,39 @@
 					<blankPage v-if="item.name == 'blankPage'" :dataConfig="item" :isSortType="isSortType"></blankPage>
 					<combination v-if="item.name == 'combination'" :dataConfig="item" :isSortType="isSortType">
 					</combination>
-          <!-- 优惠券 -->
+					<!-- 优惠券 -->
 					<coupon v-if="item.name == 'coupon'" :dataConfig="item" :isSortType="isSortType"></coupon>
-          <!-- 客户服务 -->
+					<!-- 客户服务 -->
 					<customerService v-if="item.name == 'customerService'" :dataConfig="item" :isSortType="isSortType">
 					</customerService>
-          <!-- 商品列表 -->
+					<!-- 商品列表 -->
 					<goodList v-if="item.name == 'goodList'" :dataConfig="item" @detail="goDetail"
 						:isSortType="isSortType"></goodList>
 					<guide v-if="item.name == 'guide'" :dataConfig="item" :isSortType="isSortType"></guide>
-          <!-- 顶部搜索框 -->
+					<!-- 顶部搜索框 -->
 					<headerSerch v-if="item.name == 'headerSerch'" :dataConfig="item"></headerSerch>
-          <!-- 直播模块 -->
+					<!-- 直播模块 -->
 					<liveBroadcast v-if="item.name == 'liveBroadcast'" :dataConfig="item" :isSortType="isSortType">
 					</liveBroadcast>
 					<menus v-if="item.name == 'menus'" :dataConfig="item" :isSortType="isSortType"></menus>
-          <!-- 实时消息 -->
+					<!-- 实时消息 -->
 					<news v-if="item.name == 'news'" :dataConfig="item" :isSortType="isSortType"></news>
-          <!-- 图片库 -->
+					<!-- 图片库 -->
 					<pictureCube v-if="item.name == 'pictureCube'" :dataConfig="item" :isSortType="isSortType">
 					</pictureCube>
-          <!-- 促销列表 -->
-					<promotionList v-if="item.name == 'promotionList'" :dataConfig="item" @detail="goDetail" :isSortType="isSortType" :productVideoStatus='product_video_status'>
+					<!-- 促销列表 -->
+					<promotionList v-if="item.name == 'promotionList'" :dataConfig="item" @detail="goDetail"
+						:isSortType="isSortType" :productVideoStatus='product_video_status'>
 					</promotionList>
 					<richText v-if="item.name == 'richText'" :dataConfig="item" :isSortType="isSortType"></richText>
 					<seckill v-if="item.name == 'seckill'" :dataConfig="item" :isSortType="isSortType"></seckill>
-          <!-- 轮播图-->
+					<!-- 轮播图-->
 					<swiperBg v-if="item.name == 'swiperBg'" :dataConfig="item" :isSortType="isSortType"></swiperBg>
 					<swipers v-if="item.name == 'swipers'" :dataConfig="item" :isSortType="isSortType"></swipers>
-          <!-- 顶部选项卡 -->
+					<!-- 顶部选项卡 -->
 					<tabNav v-if="item.name == 'tabNav'" :dataConfig="item" @bindHeight="bindHeighta"
 						@bindSortId="bindSortId" :isFixed="isFixed"></tabNav>
-            <!-- 标题 -->
+					<!-- 标题 -->
 					<titles v-if="item.name == 'titles'" :dataConfig="item" :isSortType="isSortType"></titles>
 				</block>
 				<!-- #endif -->
@@ -83,7 +85,7 @@
 							</view>
 						</view>
 					</scroll-view>
-          <!-- 首页商品列表 -->
+					<!-- 首页商品列表 -->
 					<view class="product-list" v-if="goodList.length">
 						<view class="product-item" v-for="(item, index) in goodList" @click="goGoodsDetail(item)">
 							<image :src="item.image" mode="aspectFill"></image>
@@ -113,7 +115,7 @@
 				</view>
 				<!-- #endif -->
 				<!-- #ifndef  APP-PLUS -->
-        <!-- 商品排序 -->
+				<!-- 商品排序 -->
 				<view class="sort-product" v-if="isSortType == 1" :style="{ marginTop: sortMpTop + 'px' }">
 					<scroll-view scroll-x="true" class="sort-scroll">
 						<view class="sort-box" v-if="sortList.children && sortList.children.length">
@@ -125,7 +127,7 @@
 							</view>
 						</view>
 					</scroll-view>
-          <!-- 首页底部商品列表 -->
+					<!-- 首页底部商品列表 -->
 					<view class="product-list" v-if="goodList.length">
 						<view class="product-item" v-for="(item, index) in goodList" @click="goGoodsDetail(item)">
 							<view class="pictrue">
@@ -136,7 +138,8 @@
 									v-if="item.activity && item.activity.type === '2'">砍价</span>
 								<span class="pictrue_log_big pictrue_log_class"
 									v-if="item.activity && item.activity.type === '3'">拼团</span>
-								<view class="activityFrame" v-if="item.activity_frame.image" :style="'background-image: url('+item.activity_frame.image+');'"></view>
+								<view class="activityFrame" v-if="item.activity_frame.image"
+									:style="'background-image: url('+item.activity_frame.image+');'"></view>
 							</view>
 							<view class="info">
 								<view class="title line1">{{ item.store_name }}</view>
@@ -253,7 +256,7 @@
 		getCategoryList,
 		getProductslist,
 		getProductHot,
-    diyProduct
+		diyProduct
 	} from '@/api/store.js';
 	import {
 		goShopDetail
@@ -261,7 +264,9 @@
 	import {
 		toLogin
 	} from '@/libs/login.js';
-	import {HTTP_REQUEST_URL} from '@/config/app';
+	import {
+		HTTP_REQUEST_URL
+	} from '@/config/app';
 	import pageFooter from '@/components/pageFooter/index.vue';
 	import Loading from '@/components/Loading/index.vue';
 	import recommend from '@/components/recommend';
@@ -274,7 +279,7 @@
 			Loading,
 			pageFooter,
 			couponWindow,
-    
+
 			// #ifdef H5
 			...mConfig,
 			// #endif
@@ -355,9 +360,9 @@
 				bgTabVal: '',
 				pageShow: true,
 				windowHeight: 0,
-				imgHost:HTTP_REQUEST_URL,
+				imgHost: HTTP_REQUEST_URL,
 				// isShowAuth: false,
-				isScrolled:false,
+				isScrolled: false,
 				product_video_status: false,
 				confirm_video_status: false
 			};
@@ -376,7 +381,7 @@
 				state,
 				scope
 			} = options;
-			
+
 			this.diyData();
 			this.getIndexData();
 			// #ifdef H5
@@ -413,7 +418,7 @@
 				});
 			});
 		},
-		onUnload(){
+		onUnload() {
 			// 清除监听
 			uni.$off('activeFn');
 			// #ifdef MP
@@ -451,7 +456,7 @@
 			if (this.cartNum > 0) {
 				uni.setTabBarBadge({
 					index: 3,
-					text: this.cartNum>99?'99+':this.cartNum+''
+					text: this.cartNum > 99 ? '99+' : this.cartNum + ''
 				})
 			} else {
 				uni.hideTabBarRedDot({
@@ -463,7 +468,7 @@
 			if (this.isLogin) {
 				this.getCoupon();
 			}
-        this.getdiyProduct()
+			this.getdiyProduct()
 		},
 		onReady() {},
 		methods: {
@@ -472,29 +477,32 @@
 			// authColse: function(e) {
 			//   this.isShowAuth = e
 			// },
-      // div商品详情
-      getdiyProduct() {
-        diyProduct().then(res=>{
-          uni.setStorageSync('diyProduct',JSON.stringify(res.data.product_detail))
-          uni.setStorageSync('product_video_status',JSON.stringify(res.data.product_video_status))
-		  this.$eventHub.$emit('product_video_status', res.data.product_video_status);
-		  this.product_video_status = res.data.product_video_status;
-        })
-      },
-			getCopyRight(){
+			// div商品详情
+			getdiyProduct() {
+				diyProduct().then(res => {
+					uni.setStorageSync('diyProduct', JSON.stringify(res.data.product_detail))
+					uni.setStorageSync('product_video_status', JSON.stringify(res.data.product_video_status))
+					this.$eventHub.$emit('product_video_status', res.data.product_video_status);
+					this.product_video_status = res.data.product_video_status;
+				})
+			},
+			getCopyRight() {
 				copyRight().then(res => {
 					let data = res.data;
 					uni.setStorageSync('wechatStatus', data.wechat_status)
 					// #ifndef APP-PLUS
 					this.site_config = data.record_No;
 					// #endif
-					if(!data.copyrightContext && !data.copyrightImage){
+					if (!data.copyrightContext && !data.copyrightImage) {
 						data.copyrightImage = '/static/images/support.png'
 					}
 					uni.setStorageSync('copyNameInfo', data.copyrightContext);
 					uni.setStorageSync('copyImageInfo', data.copyrightImage);
 					// #ifdef MP
-					uni.setStorageSync('MPSiteData', JSON.stringify({site_logo:data.site_logo,site_name:data.site_name}));
+					uni.setStorageSync('MPSiteData', JSON.stringify({
+						site_logo: data.site_logo,
+						site_name: data.site_name
+					}));
 					// #endif
 				}).catch(err => {
 					return this.$util.Tips({
@@ -502,16 +510,20 @@
 					});
 				});
 			},
-			getOptions(options){
+			getOptions(options) {
 				let that = this;
 				// #ifdef MP
 				if (options.scene) {
 					let value = that.$util.getUrlParams(decodeURIComponent(options.scene));
 					//记录推广人uid
-					if (value.spid) app.globalData.spid = value.spid;
+					if (value.spid) {
+						app.globalData.spid = value.spid;
+					}
 				}
 				// #endif
-				if (options.spid) app.globalData.spid = options.spid;
+				if (options.spid) {
+					app.globalData.spid = options.spid;
+				}
 			},
 			// 重新链接
 			reconnect() {
@@ -616,7 +628,7 @@
 					});
 				}
 			},
-      // 商品列表
+			// 商品列表
 			getGoodsList() {
 				if (this.loading || this.loaded) return;
 				this.loading = true;
@@ -755,7 +767,7 @@
 					}
 					temp = arr;
 				});
-											
+
 				function sortNumber(a, b) {
 					return a.timestamp - b.timestamp;
 				}
@@ -791,12 +803,12 @@
 						let diyVersion = uni.getStorageSync('diyVersion');
 						if ((res.data.version + '0') === diyVersion) {
 							this.setDiyData(JSON.parse(diyData));
-						} else{
+						} else {
 							uni.setStorageSync('diyVersion', (res.data.version + '0'));
 							this.getDiyData();
 						}
 					});
-				} else{
+				} else {
 					this.getDiyData();
 				}
 				// getDiy(0).then(res => {
@@ -835,7 +847,7 @@
 				// 		}
 				// 		temp = arr;
 				// 	});
-				
+
 				// 	function sortNumber(a, b) {
 				// 		return a.timestamp - b.timestamp;
 				// 	}
@@ -880,14 +892,14 @@
 			// 微信分享;
 			setOpenShare: function() {
 				let that = this;
-				let uid = this.uid?this.uid:0;
+				let uid = this.uid ? this.uid : 0;
 				if (that.$wechat.isWeixin()) {
 					getShare().then(res => {
 						let data = res.data;
 						let configAppMessage = {
 							desc: data.synopsis,
 							title: data.title,
-							link: location.href+'?spid='+uid,
+							link: location.href + '?spid=' + uid,
 							imgUrl: data.img
 						};
 						that.$wechat.wechatEvevt(['updateAppMessageShareData', 'updateTimelineShareData',
@@ -900,8 +912,7 @@
 			// #endif
 		},
 		onReachBottom: function() {
-			if (this.isSortType == 0) {
-			} else {
+			if (this.isSortType == 0) {} else {
 				this.getGoodsList();
 			}
 		},
@@ -920,18 +931,18 @@
 				this.isFixed = false
 			}
 			// #endif
-			if(e.scrollTop>10){
+			if (e.scrollTop > 10) {
 				this.isScrolled = true;
-			}else{
+			} else {
 				this.isScrolled = false;
 			}
 		},
 		//#ifdef MP
 		onShareAppMessage() {
-			let uid = this.uid?this.uid:0;
+			let uid = this.uid ? this.uid : 0;
 			return {
 				title: this.shareInfo.title,
-				path: '/pages/index/index?spid='+uid,
+				path: '/pages/index/index?spid=' + uid,
 				imageUrl: this.shareInfo.img,
 				desc: this.shareInfo.synopsis
 			};
@@ -1089,9 +1100,11 @@
 			border-radius: 120rpx;
 		}
 	}
-.sort-scroll {
-  background-color: #fff;
-}
+
+	.sort-scroll {
+		background-color: #fff;
+	}
+
 	.sort-product {
 		margin-top: 20rpx;
 
@@ -1164,8 +1177,8 @@
 				border-radius: 10rpx;
 				margin-bottom: 20rpx;
 				overflow: hidden;
-				
-				.pictrue{
+
+				.pictrue {
 					position: relative;
 				}
 
@@ -1200,10 +1213,12 @@
 	.empty-box {
 		text-align: center;
 		padding-top: 50rpx;
-		.tips{
+
+		.tips {
 			color: #aaa;
 			font-size: 26rpx;
 		}
+
 		image {
 			width: 414rpx;
 			height: 304rpx;
@@ -1223,4 +1238,4 @@
 			width: 100%;
 		}
 	}
-</style>
+</style>

+ 33 - 9
pages/user/index.vue

@@ -158,7 +158,8 @@
 							:style="{backgroundImage:'url('+imgHost+'/statics/images/grade.png'+')'}"
 							v-if="member_style==1 && memberStatus && vip_type==1">
 							<view class="left-box on">
-								<view class="small">{{userInfo.level_status==1?userInfo.vip_name:'激活会员卡 解锁更多权益'}}</view>
+								<!-- <view class="small">{{userInfo.level_status==1?userInfo.vip_name:'激活会员卡 解锁更多权益'}}</view> -->
+								<view class="small">{{userInfo.level_status==1?'':'激活会员卡 解锁更多权益'}}</view>
 							</view>
 							<view class="acea-row row-middle">
 								<!-- 去激活 -->
@@ -172,7 +173,8 @@
 						<view class="cardVipB acea-row row-between on"
 							:style="{backgroundImage:'url('+imgHost+'/statics/images/grade01.png'+')'}"
 							v-if="member_style==3 && memberStatus && vip_type==1">
-							<view class="small">{{userInfo.level_status==1?userInfo.vip_name:'激活会员卡 解锁更多权益'}}</view>
+							<!-- <view class="small">{{userInfo.level_status==1?userInfo.vip_name:'激活会员卡 解锁更多权益'}}</view> -->
+							<view class="small">{{userInfo.level_status==1?'':'激活会员卡 解锁更多权益'}}</view>
 							<view class="acea-row">
 								<navigator
 									:url="userInfo.level_status==1?'/pages/annex/vip_grade/index':'/pages/annex/vip_grade_active/index'"
@@ -205,7 +207,8 @@
 					<view class="card-vip on" v-if="member_style==2 && memberStatus && vip_type==1"
 						:style="{backgroundImage:'url('+imgHost+'/statics/images/grade01.png'+')'}">
 						<view class="left-box">
-							<view class="small">{{userInfo.level_status==1?userInfo.vip_name:'激活会员卡 解锁更多权益'}}</view>
+							<!-- <view class="small">{{userInfo.level_status==1?userInfo.vip_name:'激活会员卡 解锁更多权益'}}</view> -->
+							<view class="small">{{userInfo.level_status==1?'':'激活会员卡 解锁更多权益'}}</view>
 						</view>
 						<view class="acea-row">
 							<navigator
@@ -214,6 +217,12 @@
 							<text class="iconfont icon-xiangyou"></text>
 						</view>
 					</view>
+					<view class="flex-item-box">
+						<view class="flex-item">
+							<view class="txt">参考值</view>
+							<text class="num">{{userInfo.integral_price || 0}}</text>
+						</view>
+					</view>
 					<view class="num-wrapper"
 						:class="[member_style==3?'unNum-wrapper':member_style==2?'Tnum-wrapper':'',((vip_type==2 && stu) || (vip_type==1 && memberStatus))?'':'height']"
 						v-if="userInfo.hidden_integral=='1'">
@@ -221,13 +230,9 @@
 							<text class="num">{{userInfo.sum_integral || 0}}</text>
 							<view class="txt">总积分</view>
 						</view>
-						<view class="num-item">
-							<text class="num">{{userInfo.integral_price || 0}}</text>
-							<view class="txt">参考值</view>
-						</view>
 						<view class="num-item">
 							<text class="num">{{userInfo.award_lack || 0}}</text>
-							<view class="txt">奖金池</view>
+							<view class="txt">总资金</view>
 						</view>
 					</view>
 					<view class="num-wrapper"
@@ -1426,6 +1431,25 @@
 		}
 	}
 
+	.flex-item-box {
+		background-color: #fff;
+		border-radius: 16rpx;
+		padding:20rpx 30rpx;
+		margin: 30rpx 30rpx 25rpx 30rpx;
+
+		.flex-item {
+			line-height: 40rpx;
+			width: 100%;
+			display: flex;
+			font-size: 28rpx;
+			font-weight: bold;
+			justify-content: space-between;
+			.num{
+				font-size: 40rpx;
+			}
+		}
+	}
+
 	.num-wrapper {
 		background-color: #fff;
 		z-index: 29;
@@ -1481,7 +1505,7 @@
 		.num-item {
 			width: 33.33%;
 			text-align: center;
-
+			flex-grow: 1;
 			&~.num-item {
 				position: relative;
 

+ 103 - 25
pages/users/login/index.vue

@@ -7,14 +7,14 @@
 		</view>
 		<view class="whiteBg" v-if="formItem === 1">
 			<view class="tips">
-				<view class="tips-btn" :class="current == 1 ? 'on' : ''" @click="current = 1">
-					<view>快速登录</view>
-					<view :class="current == 1 ? 'line' : 'none'"></view>
-				</view>
 				<view class="tips-btn" :class="current == 0 ? 'on' : ''" @click="current = 0">
 					<view>账号登录</view>
 					<view :class="current == 0 ? 'line' : 'none'"></view>
 				</view>
+				<view class="tips-btn" :class="current == 1 ? 'on' : ''" @click="current = 1">
+					<view>注册登录</view>
+					<view :class="current == 1 ? 'line' : 'none'"></view>
+				</view>
 			</view>
 			<view class="list" v-if="current !== 1">
 				<form @submit.prevent="submit">
@@ -42,6 +42,12 @@
 						<input type="text" placeholder="输入手机号码" v-model="account" maxlength="11" />
 					</view>
 				</view>
+				<view class="item">
+					<view class="acea-row row-middle">
+						<image src="../static/phone_1.png" class="itemImg-add"></image>
+						<input type="text" placeholder="输入邀请码" v-model="spread_spid" maxlength="11" />
+					</view>
+				</view>
 				<view class="item">
 					<view class="acea-row row-middle">
 						<image src="../static/code_2.png" class="item-img"></image>
@@ -61,8 +67,11 @@
 			</view>
 			<view class="logon" @click="loginMobile" v-if="current !== 0">登录</view>
 			<view class="logon" @click="submit" v-if="current === 0">登录</view>
+			<!-- #ifdef H5 -->
+			<view class="logon" @click="domApp" style="margin-top: 20rpx;">下载APP</view>
+			<!-- #endif -->
 			<!-- #ifdef APP-PLUS -->
-			<view class="appLogin" v-if="!appLoginStatus && !appleLoginStatus">
+			<!-- <view class="appLogin" v-if="!appLoginStatus && !appleLoginStatus">
 				<view class="hds">
 					<span class="line"></span>
 					<p>其他方式登录</p>
@@ -76,27 +85,30 @@
 						<view class="iconfont icon-s-pingguo"></view>
 					</view>
 				</view>
-			</view>
+			</view> -->
 			<!-- #endif -->
 			<view class="protocol">
 				<checkbox-group @change='ChangeIsDefault'>
 					<checkbox :class="inAnimation?'trembling':''" @animationend='inAnimation=false'
 						:checked="protocol ? true : false" />已阅读并同意 <text class="main-color"
 						@click="privacy('user')">《用户协议》</text>
-					与<text class="main-color" @click="privacy('privacy')">《隐私协议》</text>
+					与<text class="main-color" @click="privacy('privacy ')">《隐私协议》</text>
 				</checkbox-group>
 			</view>
 		</view>
 		<view class="bottom"></view>
 		<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }"
 			ref="verify"></Verify>
-		<!-- <view class="copyright" v-if="copyrightContext">{{copyrightContext}}</view>	
-		<view class="copyright" v-else>Copyright ©2014-2023 <text class="domain" @click="domainTap('https://www.crmeb.com')">www.crmeb.com</text></view> -->
+		<view class="copyright" v-if="copyrightContext">{{copyrightContext}}</view>	
+		<!-- <view class="copyright" v-else>Copyright ©2014-2023 <text class="domain" @click="domainTap('https://www.crmeb.com')">www.crmeb.com</text></view> -->
 	</view>
 </template>
 <script>
 	import dayjs from "@/plugin/dayjs/dayjs.min.js";
 	import sendVerifyCode from "@/mixins/SendVerifyCode";
+	import {
+		getAppVersion
+	} from '@/api/api.js';
 	import {
 		loginH5,
 		loginMobile,
@@ -137,12 +149,16 @@
 		mixins: [sendVerifyCode, colors],
 		data: function() {
 			return {
+				// #ifdef H5
+				showDom: true,
+				// #endif
 				inAnimation: false,
 				protocol: false,
-				navList: ["快速登录", "账号登录"],
-				current: 1,
+				navList: [ "账号登录","注册登录"],
+				current: 0,
 				account: "",
 				password: "",
+				spread_spid:'',
 				captcha: "",
 				formItem: 1,
 				type: "login",
@@ -169,7 +185,7 @@
 				}
 			}
 		},
-		onLoad() {
+		onLoad(res) {
 			let self = this
 			uni.getSystemInfo({
 				success: (res) => {
@@ -178,12 +194,38 @@
 					}
 				}
 			});
+			if(res.spid){
+				this.spread_spid =res.spid;
+			}
 		},
 		mounted: function() {
 			// this.getCode();
 			this.getLogoImage();
+			this.spread_spid = this.$Cache.get("spid");
+			if(!this.spid){
+				this.spread_spid = this.$Cache.get("spid");
+			}
 		},
 		methods: {
+			// #ifdef H5
+			domApp() {
+				const bool = navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger';
+				if (bool) {
+					uni.showModal({
+						title: '提示',
+						content: '无法在微信中下载,请用浏览器打开下载',
+						showCancel: false,
+					});
+				} else {
+					getAppVersion().then((res) => {
+						console.log(res,'res');
+						window.open(res.data.apk)
+					}).catch((err)=>{
+						console.log(err,'err');
+					})
+				}
+			},
+			// #endif
 			domainTap(url){
 				// #ifdef H5
 				location.href = url
@@ -467,6 +509,7 @@
 				if (!/^[\w\d]+$/i.test(that.captcha)) return that.$util.Tips({
 					title: '请输入正确的验证码'
 				});
+				
 				if (that.appLoginStatus) {
 					that.wxLoginApi()
 				} else if (that.appleLoginStatus) {
@@ -482,7 +525,7 @@
 					loginMobile({
 							phone: that.account,
 							captcha: that.captcha,
-							spread_spid: that.$Cache.get("spid")
+							spread_spid: that.spread_spid
 						})
 						.then(res => {
 							let data = res.data;
@@ -620,18 +663,53 @@
 							'token': data.token,
 							'time': data.expires_time - this.$Cache.time()
 						});
-						let backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
-						that.$Cache.clear(BACK_URL);
-						getUserInfo().then(res => {
-							this.keyLock = true
-							that.$store.commit("SETUID", res.data.uid);
-							that.$store.commit("UPDATE_USERINFO", res.data);
-							uni.reLaunch({
-								url: backUrl
-							});
-						}).catch(error => {
-							this.keyLock = true
-						})
+						
+						// #ifdef H5
+						 uni.showModal({
+						 	title: '提示',
+						 	content: '是否下载app',
+						 	success: res => {
+								if(res.confirm){
+									domApp()
+								}else if(res.cancel){
+									let backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
+									that.$Cache.clear(BACK_URL);
+									getUserInfo().then(res => {
+										this.keyLock = true
+										that.$store.commit("SETUID", res.data.uid);
+										that.$store.commit("UPDATE_USERINFO", res.data);
+										uni.reLaunch({
+											url: backUrl
+										});
+									}).catch(error => {
+										this.keyLock = true
+									})
+								}
+							},
+						 	fail: () => {},
+						 	complete: () => {}
+						 });
+						 
+						 // #endif
+						 
+						 // #ifndef H5
+						 let backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
+						 that.$Cache.clear(BACK_URL);
+						 getUserInfo().then(res => {
+						 	this.keyLock = true
+						 	that.$store.commit("SETUID", res.data.uid);
+						 	that.$store.commit("UPDATE_USERINFO", res.data);
+						 	uni.reLaunch({
+						 		url: backUrl
+						 	});
+						 }).catch(error => {
+						 	this.keyLock = true
+						 })
+						 // #endif
+						
+						
+						
+						
 					})
 					.catch(e => {
 						this.keyLock = true

+ 673 - 0
pages/users/login/register.vue

@@ -0,0 +1,673 @@
+<template>
+	<view class="login-wrapper" :style="colorStyle">
+		<view class="login-top"></view>
+		<view class="shading">
+			<image :src="logoUrl" v-if="logoUrl" />
+			<image src="../static/logo2.png" v-else />
+		</view>
+		<view class="whiteBg">
+			<view class="tips">
+				<view class="tips-btn on">
+					<view>注册账号</view>
+					<view class="line"></view>
+				</view>
+			</view>
+			<view class="list">
+				<view class="item">
+					<view class="acea-row row-middle">
+						<image src="../static/phone_1.png" class="itemImg-add"></image>
+						<input type="text" placeholder="输入手机号码" v-model="account" maxlength="11" />
+					</view>
+				</view>
+				<view class="item">
+					<view class="acea-row row-middle">
+						<image src="../static/phone_1.png" class="itemImg-add"></image>
+						<input type="text" placeholder="输入邀请码" v-model="spread_spid" maxlength="11" />
+					</view>
+				</view>
+				<view class="item">
+					<view class="acea-row row-middle">
+						<image src="../static/code_2.png" class="item-img"></image>
+						<input type="text" placeholder="填写验证码" maxlength="6" class="codeIput" v-model="captcha" />
+						<button class="code" :disabled="disabled" :class="disabled === true ? 'on' : ''" @click="code">
+							{{ text }}
+						</button>
+					</view>
+				</view>
+			</view>
+			<view class="logon" @click="loginMobile">注册</view>
+			<!-- #ifdef H5 -->
+			<view class="logon" style="margin-top: 20rpx;" @click="domApp">下载APP</view>
+			<!-- #endif -->
+			<view class="protocol">
+				<checkbox-group @change='ChangeIsDefault'>
+					<checkbox :class="inAnimation?'trembling':''" @animationend='inAnimation=false'
+						:checked="protocol ? true : false" />已阅读并同意 <text class="main-color"
+						@click="privacy('user')">《用户协议》</text>
+					与<text class="main-color" @click="privacy('privacy ')">《隐私协议》</text>
+				</checkbox-group>
+			</view>
+		</view>
+		<view class="bottom"></view>
+		<Verify @success="success" :captchaType="'blockPuzzle'" :imgSize="{ width: '330px', height: '155px' }"
+			ref="verify"></Verify>
+		<view class="copyright" v-if="copyrightContext">{{copyrightContext}}</view>
+
+	</view>
+</template>
+<script>
+	import dayjs from "@/plugin/dayjs/dayjs.min.js";
+	import sendVerifyCode from "@/mixins/SendVerifyCode";
+	import {
+		getAppVersion
+	} from '@/api/api.js';
+	import {
+		loginMobile,
+		registerVerify,
+		getCodeApi,
+		getUserInfo,
+	} from "@/api/user";
+	import attrs, {
+		required,
+		alpha_num,
+		chs_phone
+	} from "@/utils/validate";
+	import {
+		validatorDefaultCatch
+	} from "@/utils/dialog";
+	import {
+		getLogo
+	} from "@/api/public";
+	// import cookie from "@/utils/store/cookie";
+	import {
+		VUE_APP_API_URL
+	} from "@/utils";
+	// #ifdef APP-PLUS
+	import {
+		wechatAppAuth
+	} from '@/api/api.js'
+	// #endif
+	const BACK_URL = "login_back_url";
+	import colors from '@/mixins/color.js';
+	import Verify from '../components/verify/verify.vue';
+	export default {
+		name: "Login",
+		components: {
+			Verify
+		},
+		mixins: [sendVerifyCode, colors],
+		data: function() {
+			return {
+				inAnimation: false,
+				protocol: false,
+				account: "",
+				password: "",
+				spread_spid: '',
+				captcha: "",
+				type: "login",
+				logoUrl: "",
+				keyCode: "",
+				keyLock: true,
+				copyrightContext: ''
+			};
+		},
+		onLoad(res) {
+			let self = this;
+			if (res.spid) {
+				self.spread_spid = res.spid;
+			}
+		},
+		mounted: function() {
+			// this.getCode();
+			this.getLogoImage();
+			this.spread_spid = this.$Cache.get("spid");
+			if (!this.spid) {
+				this.spread_spid = this.$Cache.get("spid");
+			}
+		},
+		methods: {
+			// #ifdef H5
+			domApp() {
+				const bool = navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger';
+				if (bool) {
+					uni.showModal({
+						title: '提示',
+						content: '无法在微信中下载,请用浏览器打开下载',
+						showCancel: false,
+					});
+				} else {
+					getAppVersion().then((res) => {
+						console.log(res, 'res');
+						window.open(res.data.apk)
+					}).catch((err) => {
+						console.log(err, 'err');
+					})
+				}
+			},
+			// #endif
+			ChangeIsDefault(e) {
+				this.$set(this, 'protocol', !this.protocol);
+			},
+			success(data) {
+				this.$refs.verify.hide()
+				getCodeApi()
+					.then(res => {
+						this.keyCode = res.data.key;
+						this.getCode(data);
+					})
+					.catch(res => {
+						this.$util.Tips({
+							title: res
+						});
+					});
+			},
+			code() {
+				let that = this
+				if (!that.protocol) {
+					this.inAnimation = true
+					return that.$util.Tips({
+						title: '请先阅读并同意协议'
+					});
+				}
+				if (!that.account) return that.$util.Tips({
+					title: '请填写手机号码'
+				});
+				if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.account)) return that.$util.Tips({
+					title: '请输入正确的手机号码'
+				});
+				this.$refs.verify.show()
+			},
+			async getLogoImage() {
+				let that = this;
+				getLogo(2).then(res => {
+					that.logoUrl = res.data.logo_url;
+					that.copyrightContext = res.data.copyrightContext;
+				});
+			},
+			async loginMobile() {
+				let that = this;
+				if (!that.protocol) {
+					this.inAnimation = true
+					return that.$util.Tips({
+						title: '请先阅读并同意协议'
+					});
+				}
+				if (!that.account) return that.$util.Tips({
+					title: '请填写手机号码'
+				});
+				if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.account)) return that.$util.Tips({
+					title: '请输入正确的手机号码'
+				});
+				if (!that.captcha) return that.$util.Tips({
+					title: '请填写验证码'
+				});
+				if (!/^[\w\d]+$/i.test(that.captcha)) return that.$util.Tips({
+					title: '请输入正确的验证码'
+				});
+
+
+				if (this.keyLock) {
+					this.keyLock = !this.keyLock
+				} else {
+					return that.$util.Tips({
+						title: '请勿重复点击'
+					});
+				}
+				loginMobile({
+						phone: that.account,
+						captcha: that.captcha,
+						spread_spid: that.spread_spid
+					})
+					.then(res => {
+						let data = res.data;
+						that.$store.commit("LOGIN", {
+							'token': data.token,
+							'time': data.expires_time - this.$Cache.time()
+						});
+						let backUrl = that.$Cache.get(BACK_URL) || "/pages/index/index";
+						that.$Cache.clear(BACK_URL);
+						uni.showToast({
+							title: '注册成功'
+						});
+						getUserInfo().then(res => {
+							this.keyLock = true
+							that.$store.commit("SETUID", res.data.uid);
+							that.$store.commit("UPDATE_USERINFO", res.data);
+							if (backUrl.indexOf('/pages/users/login/index') !== -1) {
+								backUrl = '/pages/index/index';
+							}
+							// uni.reLaunch({
+							// 	url: backUrl
+							// });
+						})
+					})
+					.catch(res => {
+						this.keyLock = true
+						that.$util.Tips({
+							title: res
+						});
+					});
+
+
+			},
+			async getCode(data) {
+				console.log('data-------', data);
+				let that = this;
+				if (!that.account) return that.$util.Tips({
+					title: '请填写手机号码'
+				});
+				if (!/^1(3|4|5|7|8|9|6)\d{9}$/i.test(that.account)) return that.$util.Tips({
+					title: '请输入正确的手机号码'
+				});
+				await registerVerify({
+						phone: that.account,
+						type: that.type,
+						key: that.keyCode,
+						captchaType: 'blockPuzzle',
+						captchaVerification: data.captchaVerification
+					})
+					.then(res => {
+						that.$util.Tips({
+							title: res.msg
+						});
+						that.sendCode();
+					})
+					.catch(res => {
+						that.$util.Tips({
+							title: res
+						});
+					});
+			},
+			privacy(type) {
+				uni.navigateTo({
+					url: "/pages/users/privacy/index?type=" + type
+				})
+			}
+		}
+	};
+</script>
+
+<style lang="scss">
+	.copyright {
+		width: 650rpx;
+		position: fixed;
+		bottom: 30rpx;
+		left: 50%;
+		margin-left: -325rpx;
+		font-size: 20rpx;
+		color: #999999;
+		text-align: center;
+
+		.domain {
+			color: #478BF1;
+			margin-left: 6rpx;
+		}
+	}
+
+	.itemImg-add {
+		width: 24rpx;
+		height: 34rpx;
+	}
+
+	.item-img {
+		width: 28rpx;
+		height: 32rpx;
+	}
+
+	/deep/uni-checkbox .uni-checkbox-input {
+		margin-top: -6rpx;
+	}
+
+	.appLogin {
+		margin-top: 60rpx;
+
+		.hds {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			font-size: 24rpx;
+			color: #B4B4B4;
+
+			.line {
+				width: 68rpx;
+				height: 1rpx;
+				background: #CCCCCC;
+			}
+
+			p {
+				margin: 0 20rpx;
+			}
+		}
+
+		.btn-wrapper {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			margin-top: 30rpx;
+
+			.btn {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 68rpx;
+				height: 68rpx;
+				border-radius: 50%;
+			}
+
+			.apple-btn {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 246rpx;
+				height: 66rpx;
+				margin-left: 30rpx;
+				background: #EAEAEA;
+				border-radius: 34rpx;
+				font-size: 24rpx;
+
+				.icon-s-pingguo {
+					color: #333;
+					margin-right: 10rpx;
+					font-size: 34rpx;
+				}
+			}
+
+			.iconfont {
+				font-size: 40rpx;
+				color: #fff;
+			}
+
+			.wx {
+				background-color: #61C64F;
+			}
+
+			.mima {
+				background-color: #28B3E9;
+			}
+
+			.yanzheng {
+				background-color: #F89C23;
+			}
+
+			.pingguo {
+				margin-left: 60rpx;
+				background-color: #000;
+			}
+
+		}
+	}
+
+	.main-color {
+		color: var(--view-theme);
+	}
+
+	.code img {
+		width: 100%;
+		height: 100%;
+	}
+
+	.acea-row.row-middle {
+		input {
+			margin-left: 20rpx;
+			display: block;
+		}
+	}
+
+	.login-wrapper {
+		.login-top {
+			height: 358rpx;
+			background-color: var(--view-theme);
+			background-image: url(../static/login.png);
+			background-size: cover;
+			background-repeat: no-repeat;
+
+			image {
+				width: 101%;
+				height: 100%;
+			}
+		}
+
+		.shading {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 100%;
+			margin-top: -230rpx;
+			position: relative;
+			z-index: 8;
+
+			image {
+				width: 180rpx;
+				height: 180rpx;
+				top: 40rpx;
+			}
+		}
+
+		.whiteBg {
+			background-color: #fff;
+			margin: -30rpx 56rpx 0rpx 56rpx;
+			box-shadow: 0px 2px 14px 0px rgba(0, 0, 0, 0.08);
+			border-radius: 8px;
+			padding: 60rpx;
+			position: relative;
+			z-index: 6;
+
+			.tips {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				height: 50rpx;
+				margin: 40rpx;
+				color: #999;
+
+				.tips-btn {
+					margin: 0 31rpx 0 48rpx;
+					color: #999999;
+					font-weight: bold;
+					font-size: 32rpx;
+
+
+					/* Safari 与 Chrome */
+					.line {
+						width: 80rpx;
+						height: 6rpx;
+						background: linear-gradient(135deg, var(--view-minorColor) 0%, var(--view-theme) 100%);
+						border-radius: 2px;
+						margin: 10rpx auto 0 auto;
+						animation: myfirst .3s;
+						-webkit-animation: myfirst .3s;
+					}
+
+					.none {
+						width: 80rpx;
+						background: #fff;
+						height: 6rpx;
+					}
+				}
+
+				@keyframes myfirst {
+					0% {
+						width: 0rpx;
+					}
+
+					100% {
+						width: 80rpx;
+					}
+				}
+
+				@-webkit-keyframes myfirst
+
+				/* Safari 与 Chrome */
+					{
+					0% {
+						width: 0rpx;
+					}
+
+					100% {
+						width: 80rpx;
+					}
+				}
+
+				.tips-btn.on {
+					font-size: 36rpx;
+					color: var(--view-theme);
+				}
+			}
+
+			.list {
+				border-radius: 16rpx;
+				overflow: hidden;
+
+				.forgetPwd {
+					text-align: right;
+					margin-top: 10rpx;
+					color: #666666;
+					font-size: 24rpx;
+				}
+
+				.item {
+					border-bottom: 1px solid #F0F0F0;
+					background: #fff;
+
+					.row-middle {
+						position: relative;
+						padding: 16rpx 25rpx;
+
+						input {
+							flex: 1;
+							font-size: 28rpx;
+							height: 80rpx;
+						}
+
+						.code {
+							position: absolute;
+							right: 30rpx;
+							top: 50%;
+							color: var(--view-theme);
+							font-size: 26rpx;
+							transform: translateY(-50%);
+						}
+					}
+				}
+			}
+
+			.logon {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 100%;
+				height: 86rpx;
+				margin-top: 48rpx;
+				background: linear-gradient(135deg, var(--view-minorColor) 0%, var(--view-theme) 100%);
+				border-radius: 120rpx;
+				color: #FFFFFF;
+				font-size: 30rpx;
+			}
+		}
+
+		.protocol {
+			margin-top: 40rpx;
+			color: #999999;
+			font-size: 24rpx;
+		}
+
+		.trembling {
+			animation: shake 0.6s;
+		}
+
+		@keyframes shake {
+
+			0%,
+			100% {
+				-webkit-transform: translateX(0);
+			}
+
+			10%,
+			30%,
+			50%,
+			70%,
+			90% {
+				-webkit-transform: translateX(-5rpx);
+			}
+
+			20%,
+			40%,
+			60%,
+			80% {
+				-webkit-transform: translateX(5rpx);
+			}
+		}
+
+		@-o-keyframes shake {
+
+			/* Opera */
+			0%,
+			100% {
+				-webkit-transform: translateX(0);
+			}
+
+			10%,
+			30%,
+			50%,
+			70%,
+			90% {
+				-webkit-transform: translateX(-5rpx);
+			}
+
+			20%,
+			40%,
+			60%,
+			80% {
+				-webkit-transform: translateX(5rpx);
+			}
+		}
+
+		@-webkit-keyframes shake {
+
+			/* Safari 和 Chrome */
+			0%,
+			100% {
+				-webkit-transform: translateX(0);
+			}
+
+			10%,
+			30%,
+			50%,
+			70%,
+			90% {
+				-webkit-transform: translateX(-5rpx);
+			}
+
+			20%,
+			40%,
+			60%,
+			80% {
+				-webkit-transform: translateX(5rpx);
+			}
+		}
+
+		@-moz-keyframes shake {
+
+			/* Firefox */
+			0%,
+			100% {
+				-moz-transform: translateX(0);
+			}
+
+			10%,
+			30%,
+			50%,
+			70%,
+			90% {
+				-moz-transform: translateX(-5rpx);
+			}
+
+			20%,
+			40%,
+			60%,
+			80% {
+				-moz-transform: translateX(5rpx);
+			}
+		}
+	}
+</style>

+ 328 - 0
pages/users/user_cash/WAuth.vue

@@ -0,0 +1,328 @@
+<template>
+	<view :style="colorStyle">
+		<form @submit="formSubmit" report-submit='true'>
+			<view class='evaluate-con'>
+				<view class='score'>
+					<view class='textarea'>
+						<view class='item acea-row row-between-wrapper'>
+							<view>姓名:</view>
+							<view class='input'><input type='text' name='name' v-model='info.name' :disabled="disabled" ></input>
+							</view>
+						</view>
+						<view class='item acea-row row-between-wrapper'>
+							<view>身份证:</view>
+							<view class='input'><input type='text' name='id_card'  v-model='info.id_card' :disabled="disabled"></input>
+							</view>
+						</view>
+						<view class='item acea-row row-between-wrapper'>
+							<view>银行卡号:</view>
+							<view class='input'><input type='text' name='bank_code'  v-model='info.bank_code' :disabled="disabled"></input>
+							</view>
+						</view>
+						<view class='item acea-row row-between-wrapper'>
+							<view>手机号:</view>
+							<view class='input'><input type='text' name='mobile'  v-model='info.mobile' :disabled="disabled"></input>
+							</view>
+						</view>
+						<view class='list acea-row row-middle'>
+							<view class='pictrue acea-row row-center-wrapper row-column' @click='disabled?"":uploadpic("front_image")'
+								>
+								<text class='iconfont icon-icon25201' v-if="!info.front_image"></text>
+								<image :src='info.front_image' v-else></image>
+								<view  v-if="!info.front_image">身份证正面</view>
+							</view>
+						</view>
+						<view class='list acea-row row-middle'>
+							<view class='pictrue acea-row row-center-wrapper row-column' @click='disabled?"":uploadpic("back_image")'
+								>
+								<text class='iconfont icon-icon25201' v-if="!info.back_image"></text>
+								<image :src='info.back_image' v-else></image>
+								<view v-if="!info.back_image">身份证反面</view>
+							</view>
+						</view>
+					</view>
+					<button v-if="!disabled" class='evaluateBnt bg-color' formType="submit">立即提交</button>
+				</view>
+			</view>
+		</form>
+		<canvas canvas-id="canvas" v-if="canvasStatus"
+			:style="{width: canvasWidth + 'px', height: canvasHeight + 'px',position: 'absolute',left:'-100000px',top:'-100000px'}"></canvas>
+	</view>
+</template>
+
+<script>
+	import {
+		toLogin
+	} from '@/libs/login.js';
+	import {
+		getUserInfo,
+	} from '@/api/user.js';
+	import {
+		employee,
+		sign_url,
+		bank_info
+	} from '@/api/new.js';
+	import {
+		mapGetters
+	} from "vuex";
+	import colors from "@/mixins/color";
+	export default {
+		components: {},
+		mixins: [colors],
+		data() {
+			return {
+				canvasWidth: "",
+				canvasHeight: "",
+				canvasStatus: false,
+				// 判断是否可以输入
+				disabled:false,
+				info:{
+					name:'',	
+					id_card:'',	
+					bank_code:'',	
+					mobile:'',	
+					front_image:'',	
+					back_image:'',	
+				}
+			};
+		},
+		computed: mapGetters(['isLogin']),
+		watch: {
+			isLogin: {
+				handler: function(newV, oldV) {
+					if (newV) {
+						this.getUserInfo();
+					}
+				},
+				deep: true
+			}
+		},
+		onLoad(options) {
+			if (this.isLogin) {
+				this.getUserInfo();
+			} else {
+				toLogin()
+			}
+		},
+		methods: {
+			// 加载用户数据
+			getUserInfo(){
+				const that= this;
+				bank_info().then((res)=>{
+					if(res.data.bank_code){
+						that.disabled = true;
+						const info = that.info;
+						const bank_info = res.data;
+						info.bank_code = bank_info.bank_code;
+						info.name = bank_info.name;
+						info.id_card = bank_info.cer_code;
+						info.mobile = bank_info.mobile;
+						info.front_image = bank_info.cer_front_img;
+						info.back_image = bank_info.cer_reverse_img;
+						if(!bank_info.sign_img){
+							uni.showModal({
+								title: '提示',
+								content: '您已认证但还未签约请先签约完成',
+								cancelText: '取消',
+								confirmText: '立即签约',
+								success: res => {
+									if(res.confirm){
+										that.sign_url();
+									}
+								},
+								fail: () => {},
+								complete: () => {}
+							});
+						}else{
+							uni.showModal({
+								title: '提示',
+								content: '您已成功签约!',
+								showCancel:false
+							});
+						}
+					}
+					console.log(res);
+				})
+			},
+			// 获取签约
+			sign_url(){
+				uni.showLoading({
+					title: '签约中',
+					mask: true
+				});
+				sign_url().then((res)=>{
+					// that.$util.Tips({
+					// 	title: res.msg,
+					// 	icon: 'success'
+					// });
+					// #ifdef APP
+					plus.runtime.openURL(res.data.signUrl);
+					// #endif
+					// #ifdef H5
+					window.location.href = res.data.signUrl;
+					// #endif
+					console.log(res);
+				})
+			},
+			/**
+			 * 删除图片
+			 * 
+			 */
+			DelPic: function(type) {
+				let that = this;
+				that.info[type] = '';
+			},
+
+			/**
+			 * 上传文件
+			 * 
+			 */
+			uploadpic: function(type) {
+				let that = this;
+				this.canvasStatus = true
+				that.$util.uploadImageChange({count:8,url:'upload/image'}, function(res) {
+					that.info[type] = res.data.url;
+				}, (res) => {
+					this.canvasStatus = false
+				}, (res) => {
+					this.canvasWidth = res.w
+					this.canvasHeight = res.h
+				});
+			},
+
+			/**
+			 * 立即评价
+			 */
+			formSubmit: function(e) {
+				const that = this;
+				if(!that.info.name){
+					uni.showToast({
+						title: '请填写名字',
+						icon:'error'
+					});
+					return
+				}
+				if(!that.info.id_card){
+					uni.showToast({
+						title: '请填写身份证号码',
+						icon:'error'
+					});
+					return
+				}
+				if(!that.info.bank_code){
+					uni.showToast({
+						title: '请填写银行卡号',
+						icon:'error'
+					});
+					return
+				}
+				if(!that.info.mobile){
+					uni.showToast({
+						title: '请填写手机号',
+						icon:'error'
+					});
+					return
+				}
+				if(!that.info.front_image){
+					uni.showToast({
+						title: '请上传身份证正面',
+						icon:'error'
+					});
+					return
+				}
+				if(!that.info.back_image){
+					uni.showToast({
+						title: '请上传身份证反面',
+						icon:'error'
+					});
+					return
+				}
+				
+				uni.showLoading({
+					title: "正在提交申请……"
+				});
+				employee(that.info).then(res => {
+					uni.hideLoading();
+					that.$util.Tips({
+						title: res.msg,
+						icon: 'success'
+					});
+					that.getUserInfo();
+				}).catch(err => {
+					uni.hideLoading();
+					return that.$util.Tips({
+						title: err
+					});
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.evaluate-con{
+		.score {
+			background-color: #fff;
+			border-top: 1rpx solid #f5f5f5;
+			font-size: 28rpx;
+			color: #282828;
+			padding: 30rpx;
+			.textarea {
+				border-radius: 10rpx;
+				.item {
+					padding: 30rpx 30rpx 30rpx 0;
+					border-bottom: 1rpx solid #f2f2f2;
+					font-size: 32rpx;
+					color: #282828;
+					.label{
+						margin-right: 30rpx;
+					}
+					.input {
+						width: 460rpx;
+						text-align: right;
+						color: #868686;
+						input{
+							text-align: right;
+						}
+					}
+				}
+				.list {
+					margin-top: 25rpx;
+					.pictrue {
+						width: 690rpx;
+						height: 436rpx;
+						position: relative;
+						font-size: 40rpx;
+						color: #bbb;
+						image {
+							width: 100%;
+							height: 100%;
+							border-radius: 3rpx;
+						}
+						.icon-icon25201 {
+							color: #bfbfbf;
+							font-size: 150rpx;
+						}
+						
+					}
+					.pictrue:nth-last-child(1) {
+						border: 1rpx solid #ddd;
+						box-sizing: border-box;
+						border-radius: 10rpx;
+					}
+					
+				}
+			}
+			.evaluateBnt {
+				font-size: 30rpx;
+				color: #fff;
+				width: 690rpx;
+				height: 86rpx;
+				border-radius: 43rpx;
+				text-align: center;
+				line-height: 86rpx;
+				margin-top: 45rpx;
+			}
+		}
+	} 
+</style>

+ 144 - 84
pages/users/user_cash/index.vue

@@ -1,27 +1,27 @@
 <template>
 	<view :style="colorStyle">
 		<view class='cash-withdrawal'>
-			<view class='nav acea-row' v-if="navList.length>1">
+			<!-- <view class='nav acea-row' v-if="navList.length>1">
 				<view v-for="(item,index) in navList" :key="index" class='item fontcolor' @click="swichNav(item.id)">
 					<view class='line bg-color' :class='currentTab==item.id ? "on":""'></view>
 					<view class='iconfont' :class='item.icon+" "+(currentTab==item.id ? "on":"")'></view>
 					<view>{{item.name}}</view>
 				</view>
-			</view>
+			</view> -->
 			<view class='wrapper'>
 				<view :hidden='currentTab != 0' class='list'>
 					<form @submit="subCash">
-						<view class='item acea-row row-between-wrapper'>
+						<!-- <view class='item acea-row row-between-wrapper'>
 							<view class='name'>持卡人</view>
 							<view class='input'><input placeholder='请输入持卡人姓名' placeholder-class='placeholder'
 									name="name" onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"></input></view>
-						</view>
-						<view class='item acea-row row-between-wrapper'>
+						</view> -->
+						<!-- <view class='item acea-row row-between-wrapper'>
 							<view class='name'>卡号</view>
 							<view class='input'><input type='number' placeholder='请填写卡号' placeholder-class='placeholder'
 									name="cardnum"></input></view>
-						</view>
-						<view class='item acea-row row-between-wrapper'>
+						</view> -->
+						<!-- <view class='item acea-row row-between-wrapper'>
 							<view class='name'>银行</view>
 							<view class='input'>
 								<picker @change="bindPickerChange" :value="index" :range="array">
@@ -29,18 +29,20 @@
 									<text class='iconfont icon-qiepian38'></text>
 								</picker>
 							</view>
-						</view>
+						</view> -->
 						<view class='item acea-row row-between-wrapper'>
 							<view class='name'>提现</view>
-							<view class='input'><input @input='inputNum' :maxlength="moneyMaxLeng" :placeholder='"最低提现金额:¥"+minPrice' placeholder-class='placeholder'
-									name="money" type='digit'></input></view>
+							<view class='input'><input @input='inputNum' :maxlength="moneyMaxLeng"
+									:placeholder='"最低提现金额:¥"+minPrice' placeholder-class='placeholder' name="money"
+									type='digit'></input></view>
 						</view>
 						<view class='tip'>
 							当前可提现金额: <text
 								class="price">¥{{userInfo.commissionCount}}</text>,冻结佣金:¥{{userInfo.broken_commission}}
 						</view>
 						<view class='tip'>
-							提现手续费: <text class="price">{{withdraw_fee}}%</text>,实际到账:<text class="price">¥{{true_money}}</text>
+							提现手续费: <text class="price">{{withdraw_fee}}%</text>,实际到账:<text
+								class="price">¥{{true_money}}</text>
 						</view>
 						<view class='tip'>
 							说明: 每笔佣金的冻结期为{{userInfo.broken_day}}天,到期后可提现
@@ -53,12 +55,15 @@
 						<view class='item acea-row row-between-wrapper' v-if="extract_wechat_type == 0">
 							<view class='name'>账号</view>
 							<view class='input'><input placeholder='请填写您的微信账号' placeholder-class='placeholder'
-									name="name" onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"></input></view>
+									name="name"
+									onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"></input>
+							</view>
 						</view>
 						<view class='item acea-row row-between-wrapper'>
 							<view class='name'>提现</view>
-							<view class='input'><input @input='inputNum' :maxlength="moneyMaxLeng" :placeholder='"最低提现金额:¥"+minPrice' placeholder-class='placeholder'
-									name="money" type='digit'></input></view>
+							<view class='input'><input @input='inputNum' :maxlength="moneyMaxLeng"
+									:placeholder='"最低提现金额:¥"+minPrice' placeholder-class='placeholder' name="money"
+									type='digit'></input></view>
 						</view>
 						<view class='item acea-row row-top row-between' v-if="extract_wechat_type == 0">
 							<view class='name'>收款码</view>
@@ -79,7 +84,8 @@
 								class="price">¥{{userInfo.commissionCount}}</text>,冻结佣金:¥{{userInfo.broken_commission}}
 						</view>
 						<view class='tip'>
-							提现手续费: <text class="price">{{withdraw_fee}}%</text>,实际到账:<text class="price">¥{{true_money}}</text>
+							提现手续费: <text class="price">{{withdraw_fee}}%</text>,实际到账:<text
+								class="price">¥{{true_money}}</text>
 						</view>
 						<view class='tip'>
 							说明: 每笔佣金的冻结期为{{userInfo.broken_day}}天,到期后可提现
@@ -92,12 +98,15 @@
 						<view class='item acea-row row-between-wrapper'>
 							<view class='name'>账号</view>
 							<view class='input'><input placeholder='请填写您的支付宝账号' placeholder-class='placeholder'
-									name="name" onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"></input></view>
+									name="name"
+									onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"></input>
+							</view>
 						</view>
 						<view class='item acea-row row-between-wrapper'>
 							<view class='name'>提现</view>
-							<view class='input'><input @input='inputNum' :maxlength="moneyMaxLeng" :placeholder='"最低提现金额:¥"+minPrice' placeholder-class='placeholder'
-									name="money" type='digit'></input></view>
+							<view class='input'><input @input='inputNum' :maxlength="moneyMaxLeng"
+									:placeholder='"最低提现金额:¥"+minPrice' placeholder-class='placeholder' name="money"
+									type='digit'></input></view>
 						</view>
 						<view class='item acea-row row-top row-between'>
 							<view class='name'>收款码</view>
@@ -118,7 +127,8 @@
 								class="price">¥{{userInfo.commissionCount}}</text>,冻结佣金:¥{{userInfo.broken_commission}}
 						</view>
 						<view class='tip'>
-							提现手续费: <text class="price">{{withdraw_fee}}%</text>,实际到账:<text class="price">¥{{true_money}}</text>
+							提现手续费: <text class="price">{{withdraw_fee}}%</text>,实际到账:<text
+								class="price">¥{{true_money}}</text>
 						</view>
 						<view class='tip'>
 							说明: 每笔佣金的冻结期为{{userInfo.broken_day}}天,到期后可提现
@@ -135,6 +145,9 @@
 </template>
 
 <script>
+	import {
+		bank_info
+	} from '@/api/new.js';
 	import {
 		extractCash,
 		extractBank,
@@ -149,7 +162,7 @@
 	import colors from '@/mixins/color.js';
 	export default {
 		components: {},
-		mixins:[colors],
+		mixins: [colors],
 		data() {
 			return {
 				navList: [],
@@ -167,7 +180,8 @@
 				moneyMaxLeng: 8,
 				withdraw_fee: '0',
 				true_money: 0,
-				extract_wechat_type:0
+				extract_wechat_type: 0,
+				isAuth: false, //判断是否认证
 			};
 		},
 		computed: mapGetters(['isLogin']),
@@ -191,18 +205,47 @@
 			}
 		},
 		onShow() {
+			if (this.isLogin) {
+				this.bank_info();
+			}
 			uni.removeStorageSync('form_type_cart');
 		},
 		methods: {
+			bank_info() {
+				const that = this;
+				bank_info().then((res) => {
+					if (!res.data.bank_code) {
+						that.isAuth = false;
+						uni.showModal({
+							title: '提示',
+							content: '您还未认证请立即认证',
+							confirmText: '立即认证',
+							success: res => {
+								if (res.confirm) {
+									uni.navigateTo({
+										url: './WAuth'
+									})
+								}
+							},
+							fail: () => {},
+							complete: () => {}
+						});
+						return
+					} else {
+						that.isAuth = true;
+					}
+				})
+			},
 			inputNum: function(e) {
 				let val = e.detail.value;
 				let dot = val.indexOf('.');
-				if(dot>-1){
-					this.moneyMaxLeng = dot+3;
-				}else{
+				if (dot > -1) {
+					this.moneyMaxLeng = dot + 3;
+				} else {
 					this.moneyMaxLeng = 8
 				}
-				this.true_money = Math.floor((this.$util.$h.Mul(val,this.$util.$h.Div(this.$util.$h.Sub(100,this.withdraw_fee),100)))*100)/100 || 0;
+				this.true_money = Math.floor((this.$util.$h.Mul(val, this.$util.$h.Div(this.$util.$h.Sub(100, this
+					.withdraw_fee), 100))) * 100) / 100 || 0;
 			},
 			// uploadpicW(){
 			// 	this.uploadpic(this.qrcodeUrlW);
@@ -261,32 +304,26 @@
 				let that = this;
 				getUserInfo().then(res => {
 					that.userInfo = res.data;
-					if(res.data.user_extract_bank_status){
-						this.navList.push(
-						{
-								'name': '银行卡',
-								'icon': 'icon-yinhangqia',
-								'id': 0
-							}
-						)
+					if (res.data.user_extract_bank_status) {
+						this.navList.push({
+							'name': '银行卡',
+							'icon': 'icon-yinhangqia',
+							'id': 0
+						})
 					}
-					if(res.data.user_extract_wechat_status){
-						this.navList.push(
-							{
-								'name': '微信',
-								'icon': 'icon-weixin2',
-								'id': 1
-							}
-						)
+					if (res.data.user_extract_wechat_status) {
+						this.navList.push({
+							'name': '微信',
+							'icon': 'icon-weixin2',
+							'id': 1
+						})
 					}
-					if(res.data.user_extract_alipay_status){
-						this.navList.push(
-							{
-								'name': '支付宝',
-								'icon': 'icon-icon34',
-								'id': 2
-							}
-						)
+					if (res.data.user_extract_alipay_status) {
+						this.navList.push({
+							'name': '支付宝',
+							'icon': 'icon-icon34',
+							'id': 2
+						})
 					}
 					this.currentTab = this.navList[0].id;
 				})
@@ -300,41 +337,58 @@
 			subCash: function(e) {
 				let that = this,
 					value = e.detail.value;
-				if (that.currentTab == 0) { //银行卡
-					if (value.name.length == 0) return this.$util.Tips({
-						title: '请填写持卡人姓名'
-					});
-					if (value.cardnum.length == 0) return this.$util.Tips({
-						title: '请填写卡号'
-					});
-					if (that.index == 0) return this.$util.Tips({
-						title: "请选择银行"
-					});
-					value.extract_type = 'bank';
-					value.bankname = that.array[that.index];
-				} else if (that.currentTab == 1) { //微信
-					value.extract_type = 'weixin';
-					if(that.extract_wechat_type == 0){
-						if (value.name.length == 0) return this.$util.Tips({
-							title: '请填写微信号'
+					if (!this.isAuth) {
+						uni.showModal({
+							title: '提示',
+							content: '您还未认证请立即认证',
+							confirmText: '立即认证',
+							success: res => {
+								if (res.confirm) {
+									uni.navigateTo({
+										url: './WAuth'
+									})
+								}
+							},
+							fail: () => {},
+							complete: () => {}
 						});
-						if (that.qrcodeUrlW == '') return this.$util.Tips({
-							title: '请上传图片'
-						});
-						value.weixin = value.name;
-						value.qrcode_url = that.qrcodeUrlW;
+						return
 					}
-				} else if (that.currentTab == 2) { //支付宝
-					value.extract_type = 'alipay';
-					if (value.name.length == 0) return this.$util.Tips({
-						title: '请填写账号'
-					});
-					if (that.qrcodeUrlZ == '') return this.$util.Tips({
-						title: '请上传图片'
-					});
-					value.alipay_code = value.name;
-					value.qrcode_url = that.qrcodeUrlZ;
-				}
+				// if (that.currentTab == 0) { //银行卡
+				// 	if (value.name.length == 0) return this.$util.Tips({
+				// 		title: '请填写持卡人姓名'
+				// 	});
+				// 	if (value.cardnum.length == 0) return this.$util.Tips({
+				// 		title: '请填写卡号'
+				// 	});
+				// 	if (that.index == 0) return this.$util.Tips({
+				// 		title: "请选择银行"
+				// 	});
+				// 	value.extract_type = 'bank';
+				// 	value.bankname = that.array[that.index];
+				// } else if (that.currentTab == 1) { //微信
+				// 	value.extract_type = 'weixin';
+				// 	if (that.extract_wechat_type == 0) {
+				// 		if (value.name.length == 0) return this.$util.Tips({
+				// 			title: '请填写微信号'
+				// 		});
+				// 		if (that.qrcodeUrlW == '') return this.$util.Tips({
+				// 			title: '请上传图片'
+				// 		});
+				// 		value.weixin = value.name;
+				// 		value.qrcode_url = that.qrcodeUrlW;
+				// 	}
+				// } else if (that.currentTab == 2) { //支付宝
+				// 	value.extract_type = 'alipay';
+				// 	if (value.name.length == 0) return this.$util.Tips({
+				// 		title: '请填写账号'
+				// 	});
+				// 	if (that.qrcodeUrlZ == '') return this.$util.Tips({
+				// 		title: '请上传图片'
+				// 	});
+				// 	value.alipay_code = value.name;
+				// 	value.qrcode_url = that.qrcodeUrlZ;
+				// }
 				if (value.money.length == 0) return this.$util.Tips({
 					title: '请填写提现金额'
 				});
@@ -346,6 +400,10 @@
 				} else {
 					return
 				}
+				uni.showLoading({
+					title:'提交中',
+					mask:true
+				})
 				extractCash(value).then(res => {
 					//that.getUserInfo();
 					return this.$util.Tips({
@@ -372,9 +430,11 @@
 	page {
 		background-color: #fff !important;
 	}
-	.fontcolor{
+
+	.fontcolor {
 		color: var(--view-theme) !important;
 	}
+
 	.cash-withdrawal .nav {
 		height: 130rpx;
 		box-shadow: 0 10rpx 10rpx #f8f8f8;
@@ -523,4 +583,4 @@
 	.price {
 		color: var(--view-priceColor);
 	}
-</style>
+</style>

+ 1 - 1
pages/users/user_integral/integral.vue

@@ -3,7 +3,7 @@
 	<view>
 		<view class='integral-details' :style="colorStyle">
 			<view class='header'>
-				<view class='currentScore'>资金池总额</view>
+				<view class='currentScore'>资金</view>
 				<view class="scoreNum">{{userInfo.award_lack}}</view>
 				<view class='line'></view>
 				<view class='nav acea-row'>

+ 1 - 1
pages/users/user_payment/index.vue

@@ -126,7 +126,7 @@
 					// #endif
 				],
 				pay_close: false,
-				payType: '',
+				payType: 'alipay',
 				totalPrice: '0',
 				formContent: '',
 				// #ifdef H5

+ 19 - 1
pages/users/user_spread_code/index.vue

@@ -37,7 +37,7 @@
 				:onval="onval" :loadMake="loadMake" @result="qrR" />
 		</view>
 		<!-- #ifdef MP -->
-		<!-- <authorize v-if="isShowAuth" @authColse="authColse" @onLoadFun="onLoadFun"></authorize> -->
+		<authorize v-if="isShowAuth" @authColse="authColse" @onLoadFun="onLoadFun"></authorize>
 		<!-- #endif -->
 	</view>
 </template>
@@ -138,7 +138,20 @@
 		},
 		async onReady() {
 			if (this.isLogin) {
+				// #ifdef APP-PLUS
+				this.val = `${HTTP_REQUEST_URL}/pages/users/login/register?spid=${this.uid}`
+				// #endif
+				// #ifndef APP
 				this.val = `${HTTP_REQUEST_URL}?spid=${this.uid}`
+				// #endif
+				// #ifdef H5
+				const bool = navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger';
+				if(bool){
+					this.val = `${HTTP_REQUEST_URL}?spid=${this.uid}`
+				}else{
+					this.val = `${HTTP_REQUEST_URL}/pages/users/login/index?spid=${this.uid}`
+				}
+				// #endif
 				// #ifdef MP
 				await this.spreadMsg()
 				// #endif
@@ -173,7 +186,12 @@
 		// #endif
 		methods: {
 			getIsLogin(){
+				// #ifndef MP
 				toLogin()
+				// #endif
+				// #ifdef MP
+				this.isShowAuth = true;
+				// #endif
 			},
 			onLoadFun(){
 				this.spreadMsg();

+ 4 - 4
pages/users/user_spread_user/index.vue

@@ -144,7 +144,7 @@
 						<view class="trip">分销等级说明</view>
 					</view>
 				</view>
-				<view class="item" @click="jumbPath(2)">
+				<!-- <view class="item" @click="jumbPath(2)">
 					<view class="img">
 						<text class="iconfont icon-yongjinpaihang1"></text>
 					</view>
@@ -152,8 +152,8 @@
 						<view class="text">佣金排行</view>
 						<view class="trip">您的排名为{{userInfo.position_count || '-'}}</view>
 					</view>
-				</view>
-				<view class="item" @click="jumbPath(1)">
+				</view> -->
+				<!-- <view class="item" @click="jumbPath(1)">
 					<view class="img">
 						<text class="iconfont icon-tuiguangrenpaihang1"></text>
 					</view>
@@ -161,7 +161,7 @@
 						<view class="text">推广人排行</view>
 						<view class="trip">您的排名为{{userInfo.rank_count || '-'}}</view>
 					</view>
-				</view>
+				</view> -->
 			</view>
 		</view>
 		<task :inv-show="taskShow" :task="task" @inv-close="()=>{taskShow= false}"></task>

+ 130 - 0
utils/upApp.js

@@ -0,0 +1,130 @@
+import confige from '@/config/app.js'
+import {getAppVersion} from '@/api/api.js'
+const iosAppStroeUrl =
+	'https://apps.apple.com/cn/app/%E6%BB%A1%E5%9B%AD%E6%98%A5%E7%BA%BF%E4%B8%8A%E5%95%86%E5%9F%8E/id1524593346';
+
+// 获取app是否需要升级
+export function getUpApp () {
+	// 获取当前运行系统
+	let hj = uni.getSystemInfoSync().platform;
+	// 获取仓库app数据对象
+	// let app = store.state.isShowIllegality;
+	// 当前系统为安卓则显示数据
+	if (hj === 'android') {
+		// 设置默认显示数据
+		// app = true;
+		// store.commit('changeState', {
+		// 	name: 'app',
+		// 	value: app
+		// });
+	}
+	console.log('开始升级');
+	getAppVersion().then((res)=>{
+		console.log(res,'回调');
+			let r = res.data;
+			plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
+				console.log(r.version,'获取版本');
+				// 保存线上版本号
+				let version = r.version;
+				// 获取线上版本
+				const arr = r.version.split('.');
+				// 获取当前系统
+				const arr1 = wgtinfo.version.split('.');
+				console.log(version,'升级数据2');
+				console.log(arr,'升级数据3');
+				console.log(arr1,'升级数据4');
+				let up = false;
+				
+				for (let i = 0; i < arr.length; i++) {
+					// 线上版本号
+					const x = +arr[i];
+					// 线下版本号
+					const y = +arr1[i];
+					// 判断当前版本是否为小于等于线上版本
+					console.log(x,y,'循环');
+					if (x >= y) {
+						// 只有ios才需要显示
+						// if (hj === 'ios') {
+						// 	// 设置显示数据
+						// 	// app = true;
+						// 	// store.commit('changeState', {
+						// 	// 	name: 'app',
+						// 	// 	value: app
+						// 	// });
+						// }
+						// 当版本较低时更新数据
+						console.log(x,y);
+						if(up==true){
+							return;
+						}
+						if (x > y) {
+							up = true;
+							uni.showModal({
+								title: '提示',
+								content: '请更新应用',
+								showCancel: false,
+								success(e) {
+									// if (hj === 'ios') {
+									// 	plus.runtime.openURL(
+									// 		iosAppStroeUrl
+									// 	);
+									// }
+									if (hj === 'android') {
+										// plus.runtime.openURL('http://lxscimg.liuniu946.com/lxscV' + version + '.apk');
+										console.log(r.apk,'下載地址');
+										downApp(r.apk);
+									}
+								}
+							});
+						}
+						
+					}
+				}
+			});
+	}).catch((res)=>{
+		console.log(res);
+	})
+}
+// 下载app
+export function downApp (version) {
+	let url = '';
+	if(version.indexOf('http')>-1){
+		url = version;
+	}else{
+		url = confige.HTTP_REQUEST_URL+version
+	}
+	console.log(url);
+	plus.nativeUI.showWaiting('下载升级包...');
+	plus.downloader
+		.createDownload(url, {}, (d, status) => {
+			if (status == 200) {
+				installApp(d.filename); // 安装app
+			} else {
+				plus.nativeUI.alert('下载升级包失败!');
+			}
+			plus.nativeUI.closeWaiting();
+		})
+		.start();
+}
+// 安装app
+export function installApp (path) {
+	plus.nativeUI.showWaiting('安装升级包...');
+	plus.runtime.install(
+		path, {},
+		function() {
+			plus.nativeUI.closeWaiting();
+			uni.showToast({
+				icon: 'none',
+				title: '升级完成,准备重新载入'
+			});
+			setTimeout(_ => {
+				uni.hideToast();
+				plus.runtime.restart();
+			}, 1000);
+		},
+		function(e) {
+			plus.nativeUI.closeWaiting();
+			plus.nativeUI.alert('安装升级包失败[' + e.code + ']:' + e.message);
+		}
+	);
+}