hwq 3 years ago
parent
commit
5288aca8ee
49 changed files with 1457 additions and 281 deletions
  1. 7 0
      api/finance.js
  2. 10 0
      api/index.js
  3. 1 1
      api/login.js
  4. 6 5
      manifest.json
  5. 1 1
      package-lock.json
  6. 73 4
      pages.json
  7. 1 1
      pages/assets/logroll.vue
  8. 198 33
      pages/index/index.vue
  9. 163 0
      pages/index/recommend.vue
  10. 1 1
      pages/market/duihuan.vue
  11. 2 2
      pages/money/phone.vue
  12. 1 1
      pages/money/publicW.vue
  13. 2 2
      pages/money/publicWelfare.vue
  14. 2 2
      pages/money/withdrawal.vue
  15. 63 31
      pages/money/withdrawalJF.vue
  16. 3 0
      pages/order/createOrder.vue
  17. 1 1
      pages/product/list.vue
  18. 1 1
      pages/product/ping.vue
  19. 44 45
      pages/product/product.vue
  20. 1 1
      pages/product/productDuhuan.vue
  21. 448 0
      pages/product/search.vue
  22. 249 43
      pages/public/login.vue
  23. 83 65
      pages/redirect/redirect.vue
  24. 2 2
      pages/set/set.vue
  25. 12 11
      pages/user/assets.vue
  26. 11 2
      pages/user/extension.vue
  27. 12 1
      pages/user/shareQrCode.vue
  28. 15 12
      pages/user/user.vue
  29. BIN
      static/img/index-good.png
  30. BIN
      static/img/index-vip.png
  31. BIN
      static/img/login-bg.png
  32. BIN
      static/img/qianbao.png
  33. BIN
      unpackage/cache/apk/__UNI__3CDE968_cm.apk
  34. 1 1
      unpackage/cache/apk/apkurl
  35. 0 0
      unpackage/cache/apk/cmManifestCache.json
  36. 0 0
      unpackage/cache/wgt/__UNI__3CDE968/app-config-service.js
  37. 0 0
      unpackage/cache/wgt/__UNI__3CDE968/app-service.js
  38. 0 0
      unpackage/cache/wgt/__UNI__3CDE968/app-view.js
  39. 0 0
      unpackage/cache/wgt/__UNI__3CDE968/manifest.json
  40. BIN
      unpackage/cache/wgt/__UNI__3CDE968/static/img/login-bg.png
  41. BIN
      unpackage/cache/wgt/__UNI__3CDE968/static/img/login-weixin.png
  42. BIN
      unpackage/cache/wgt/__UNI__3CDE968/static/img/qianbao.png
  43. BIN
      unpackage/debug/android_debug.apk
  44. BIN
      unpackage/release/apk/__UNI__3CDE968__20211127103054.apk
  45. BIN
      unpackage/release/apk/__UNI__3CDE968__20211129164320.apk
  46. 1 1
      utils/newRequest.js
  47. 17 3
      utils/request.js
  48. 1 1
      utils/upApp.js
  49. 24 7
      utils/wxAuthorized.js

+ 7 - 0
api/finance.js

@@ -70,6 +70,13 @@ export function cashmoney_type(data) {
 		data
 	});
 }
+export function cash(data) {
+	return request({
+		url: '/api/extract/cash',
+		method: 'POST',
+		data
+	});
+}
 export function calculator(data) {
 	return request({
 		url: '/api/extract/calculator',

+ 10 - 0
api/index.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+//获取首页产品的轮播图和产品信息
+export function productIndexs(data,type) {
+	return request({
+		url: '/api//groom/list/' + type,
+		method: 'get',
+		data
+	});
+}

+ 1 - 1
api/login.js

@@ -49,7 +49,7 @@ export function loginMobile(data) {
 export function loginWx(data) {
 	return request({
 		url: '/api/wechat/appauth',
-		method: 'get',
+		method: 'post',
 		data
 	});
 }

+ 6 - 5
manifest.json

@@ -2,8 +2,8 @@
     "name" : "星拼乐",
     "appid" : "__UNI__3CDE968",
     "description" : "",
-    "versionName" : "1.4.6",
-    "versionCode" : 146,
+    "versionName" : "1.5.3",
+    "versionCode" : 153,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */
@@ -15,7 +15,8 @@
             "delay" : 0
         },
         "modules" : {
-            "Payment" : {}
+            "Payment" : {},
+            "OAuth" : {}
         },
         /* 模块配置 */
         "distribute" : {
@@ -45,8 +46,8 @@
                 "maps" : {},
                 "oauth" : {
                     "weixin" : {
-                        "appid" : "",
-                        "appsecret" : "",
+                        "appid" : "wx1333838b316023e5",
+                        "appsecret" : "aba059dea7c2be30508a834398d922cf",
                         "UniversalLinks" : ""
                     }
                 },

+ 1 - 1
package-lock.json

@@ -116,4 +116,4 @@
       "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
     }
   }
-}
+}

+ 73 - 4
pages.json

@@ -3,6 +3,7 @@
 		"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
 	},
 	"pages": [
+		//#ifdef APP-PLUS
 		{
 			"path": "pages/index/video",
 			"style": {
@@ -11,6 +12,7 @@
 				"navigationStyle": "custom"
 			}
 		},
+		//#endif
 		{
 			"path": "pages/index/index",
 			"style": {
@@ -30,6 +32,22 @@
 							"placeholderColor": "#ffffff",
 							"align": "center"
 						}
+						// "buttons": [{
+						// 		"fontSrc": "/static/yticon.ttf",
+						// 		"text": "\ue60d",
+						// 		"fontSize": "26",
+						// 		"color": "#303133",
+						// 		"float": "left",
+						// 		"background": "rgba(0,0,0,0)"
+						// 	},
+						// 	{
+						// 		"fontSrc": "/static/yticon.ttf",
+						// 		"text": "\ue744",
+						// 		"fontSize": "27",
+						// 		"color": "#303133",
+						// 		"background": "rgba(0,0,0,0)"
+						// 	}
+						// ]
 
 					}
 				}
@@ -47,12 +65,54 @@
 				"navigationBarTitleText": "银行卡管理"
 			}
 		},
+		{
+			"path": "pages/product/search",
+			"style": {
+				"enablePullDownRefresh": true,
+				// #ifdef APP-PLUS
+				"navigationStyle": "custom",
+				// #endif
+				//#ifdef H5
+				"navigationStyle":"default",
+				//#endif
+				// #ifndef MP || APP-PLUS
+				"app-plus": {
+					"titleNView": {
+						"searchInput": {
+							"backgroundColor": "rgba(231, 231, 231,.7)",
+							"borderRadius": "16px",
+							"placeholder": "请输入关键字",
+							"disabled": false,
+							"placeholderColor": "#606266",
+							"align": "left"
+						},
+						"buttons": [{
+							"text": "搜索",
+							"fontSize": "14",
+							"color": "#303133",
+							"background": "rgba(0,0,0,0)",
+							"width": "40px"
+						}]
+					}
+				},
+				// #endif
+				"navigationBarTitleText": "搜索"
+			}
+		},
 		{
 			"path": "pages/collection/bank",
 			"style": {
 				"navigationBarTitleText": "添加银行卡"
 			}
 		},
+		{
+			"path": "pages/index/recommend",
+			"style": {
+				"navigationBarTitleText": "推荐列表",
+				"navigationBarBackgroundColor":"#FFFFFF",
+				"navigationBarTextStyle":"black"
+			}
+		},
 		{
 			"path": "pages/set/phone",
 			"style": {
@@ -115,7 +175,7 @@
 		{
 			"path": "pages/assets/logroll",
 			"style": {
-				"navigationBarTitleText": "互助专区"
+				"navigationBarTitleText": "福利专区"
 			}
 		},
 		{
@@ -363,6 +423,9 @@
 				// #ifdef APP-PLUS
 				"navigationStyle": "custom",
 				// #endif
+				//#ifdef H5
+				"navigationStyle":"default",
+				//#endif
 				// #ifndef MP
 				"app-plus": {
 					"bounce": "none",
@@ -485,6 +548,9 @@
 				// #ifdef APP-PLUS
 				"navigationStyle": "custom",
 				// #endif
+				//#ifdef H5
+				"navigationStyle":"default",
+				//#endif
 				// #ifndef MP
 				"app-plus": {
 					"titleNView": {
@@ -555,7 +621,7 @@
 		{
 			"path": "pages/money/publicWelfare",
 			"style": {
-				"navigationBarTitleText": "我的公益积分",
+				"navigationBarTitleText": "我的福利积分",
 				"app-plus": {
 					"titleNView": false
 				}
@@ -575,7 +641,7 @@
 		{
 			"path": "pages/money/publicW",
 			"style": {
-				"navigationBarTitleText": "我的文件",
+				"navigationBarTitleText": "我的系统文件",
 				"app-plus": {
 					"titleNView": false
 				}
@@ -696,9 +762,12 @@
 
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "uni-app",
+		"navigationBarTitleText": "星拼乐商城",
 		"navigationBarBackgroundColor": "#FFFFFF",
 		"backgroundColor": "#f8f8f8"
+		//#ifdef H5
+		,"navigationStyle":"custom"
+		//#endif
 	},
 	"tabBar": {
 		"color": "#C0C4CC",

+ 1 - 1
pages/assets/logroll.vue

@@ -4,7 +4,7 @@
 		<view class="main-box">
 			<view class="main-title">
 				<!-- <view class="main-title-image"><image class="image" src="../../static/icon/title.png" mode=""></image></view> -->
-				<view class="main-title-font">互助说明</view>
+				<view class="main-title-font">福利说明</view>
 			</view>
 			<view class="main">
 				<view class="people-info">

+ 198 - 33
pages/index/index.vue

@@ -23,7 +23,57 @@
 			</view>
 		</view>
 		<!-- 商品栏 -->
-		<view class="commodity">
+		<view class="commodity" v-if="vipList.length > 0">
+			<view class="title">
+				<view class="left">
+					<image src="../../static/img/index-vip.png" mode=""></image>
+					<view class="font">
+						会员福利
+					</view>
+				</view>
+				<view class="right" @click="nav('/pages/index/recommend?type=4')">
+					<view class="right-font">
+						更多
+					</view>
+					<image src="../../static/img/jiantou.png" mode=""></image>
+				</view>
+			</view>
+			<view class="commodity-item" v-for="(item, index) in vipList" @click="navToDetailPages(item)">
+				<view class="commodity-prc">
+					<image :src="item.image" mode=""></image>
+					<!-- <view class="fanli" v-if="item.type == 1">
+						<view class="fanli-bg"><image src="../../static/img/index-fanl.png" mode=""></image></view>
+						<view class="fanli-font flex">
+							<view class="font-left">购物最高可返消费金额的</view>
+							<view class="font-right">10<text>%</text></view>
+						</view>
+					</view> -->
+				</view>
+				<view class="commodity-info">
+					<view class="commodity-name clamp">{{ item.store_name }}</view>
+					<view class="commodity-systom clamp">{{ item.systom }}</view>
+					<view class="commodity-price">
+						¥{{ item.price }}
+						<text>¥{{ item.ot_price }}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="commodity" v-if="commodityList.length > 0">
+			<view class="title">
+				<view class="left">
+					<image src="../../static/img/index-good.png" mode=""></image>
+					<view class="font">
+						精选好货
+					</view>
+				</view>
+				<view class="right" @click="nav('/pages/index/recommend?type=2')">
+					<view class="right-font">
+						更多
+					</view>
+					<image src="../../static/img/jiantou.png" mode=""></image>
+				</view>
+			</view>
 			<view class="commodity-item" v-for="(item, index) in commodityList" @click="navToDetailPages(item)">
 				<view class="commodity-prc">
 					<image :src="item.image" mode=""></image>
@@ -83,46 +133,51 @@ import { loadIndexs, dhList } from '@/api/user.js';
 import { saveUrl, interceptor } from '@/utils/loginUtils.js';
 import { mapState, mapMutations } from 'vuex';
 import { wallet } from '@/api/finance.js';
+// #ifdef H5
+import { weixindata, weixinlocation,shareLoad } from '@/utils/wxAuthorized';
+import weixinObj from "@/plugin/jweixin-module/index.js";
+// #endif
 export default {
 	computed: {
-		...mapState('user', ['userInfo', 'baseURL', 'hasLogin', 'urlFile'])
+		...mapState('user', ['userInfo' , 'hasLogin', 'urlFile']),
+		...mapState(['baseURL']),
 	},
 	data() {
 		return {
 			carouselList: [],
 			main: [
-				{
-					name: '自动拼团',
-					pic: '../../static/icon/index1.png',
-					url: '/pages/index/appointment'
-				},
-				{
-					name: '11人团专区',
-					pic: '../../static/icon/index2.png',
-					url: '/pages/product/ping'
-				},
+				// {
+				// 	name: '自动拼团',
+				// 	pic: '../../static/icon/index1.png',
+				// 	url: '/pages/index/appointment'
+				// },
+				// {
+				// 	name: '11人团专区',
+				// 	pic: '../../static/icon/index2.png',
+				// 	url: '/pages/product/ping'
+				// },
 				{
 					name: '拼团合伙人',
 					pic: '../../static/icon/index3.png',
 					url: '/pages/index/node'
 				},
-				// {
-				// 	name: '素材分享',
-				// 	pic: '../../static/icon/index4.png',
-				// 	url: '/pages/index/faquan'
-				// },
+				{
+					name: '货款充值',
+					pic: '../../static/icon/index4.png',
+					url: '/pages/money/huodai'
+				},
 				{
 					name: '邀请有礼',
 					pic: '../../static/icon/index5.png',
 					url: '/pages/user/shareQrCode'
 				},
+				// {
+				// 	name: '拼购福利',
+				// 	pic: '../../static/icon/index6.png',
+				// 	url: '/pages/user/fulilist'
+				// },
 				{
-					name: '拼购福利',
-					pic: '../../static/icon/index6.png',
-					url: '/pages/user/fulilist'
-				},
-				{
-					name: '互助专区',
+					name: '福利专区',
 					pic: '../../static/icon/index7.png',
 					url: '/pages/assets/logroll'
 				},
@@ -131,11 +186,11 @@ export default {
 					pic: '../../static/icon/index8.png',
 					url: '/pages/index/sign'
 				},
-				{
-					name: '服务器兑换',
-					pic: '../../static/icon/index9.png',
-					url: '/pages/market/market'
-				},
+				// {
+				// 	name: '服务器兑换',
+				// 	pic: '../../static/icon/index9.png',
+				// 	url: '/pages/market/market'
+				// },
 				{
 					name: '话费充值',
 					pic: '../../static/icon/index10.png',
@@ -145,14 +200,70 @@ export default {
 			swiperLength: 0,
 			swiperCurrent: 0,
 			commodityList: [], //普通商品列表
+			vipList:[],//会员列表
 			list: [] //拼团积分列表
 		};
 	},
+	onNavigationBarSearchInputClicked(e) {
+		//跳转到搜索页面
+		this.clickSearch();
+	},
+	onLoad(option) {
+		// #ifndef MP
+		if (option.spread) {
+			// 存储其他邀请人
+			uni.setStorageSync('spread', option.spread);
+		}
+		// #endif
+		// #ifdef MP
+		if (option.scene) {
+			// 存储小程序邀请人
+			uni.setStorage({
+				key: 'spread_code',
+				data: option.scene
+			});
+		}
+		// #endif
+		// #ifdef H5
+		console.log(this.hasLogin)
+		if (this.hasLogin) {
+			console.log('显示')
+			weixinObj.hideAllNonBaseMenuItem();
+			this.IndexShare();
+		}else {
+			console.log('隐藏')
+			weixinObj.hideAllNonBaseMenuItem();
+		}
+		//#endif
+	},
 	//页面加载即刻发生
 	onShow() {
 		this.loadDate();
 	},
 	methods: {
+		// #ifdef H5
+		IndexShare() {
+			let obj = this;
+			let pages = getCurrentPages();
+			// 获取当前页面
+			let page = pages[pages.length - 1];
+			let path = '/#/' + page.route + '?';
+			// 保存传值
+			for (let i in page.options) {
+				path += i + '=' + page.options[i] + '&';
+			}
+			console.log(obj.Path)
+			// 保存邀请人
+			path += 'spread=' + this.userInfo.uid;
+			let data = {
+				link: this.baseURL + '/index/' + path,
+				title: this.userInfo.nickname + '邀请您进入星拼乐',
+				desc:'欢迎加入星拼乐',
+				imgUrl: 'https://xingpinle.liuniu946.com/index/static/img/log.png'
+			};
+			weixindata(data);
+		},
+		// #endif
 		loadDate() {
 			uni.showLoading({
 				title: '加载中'
@@ -163,6 +274,10 @@ export default {
 				obj.carouselList = data.banner;
 				obj.swiperLength = data.banner.length;
 				obj.commodityList = data.likeInfo;
+				obj.vipList = data.benefit;
+				uni.hideLoading();
+			}).catch(e =>{
+				uni.hideLoading();
 			});
 			wallet({}).then(({ data }) => {
 				const obj = this;
@@ -182,6 +297,8 @@ export default {
 					});
 				})
 				uni.hideLoading();
+			}).catch(e =>{
+				uni.hideLoading();
 			});
 		},
 		//轮播图切换修改背景色
@@ -189,6 +306,13 @@ export default {
 			const index = e.detail.current;
 			this.swiperCurrent = index;
 		},
+		// 點擊搜索框
+		clickSearch() {
+			console.log(222)
+			uni.navigateTo({
+				url: '/pages/product/search'
+			});
+		},
 		navToDetailPage(item) {
 			if (!this.hasLogin) {
 				uni.showModal({
@@ -230,6 +354,7 @@ export default {
 			});
 		},
 		nav(url) {
+			console.log(url)
 			if (!this.hasLogin) {
 				uni.showModal({
 					title: '登录',
@@ -371,22 +496,62 @@ export default {
 	}
 }
 .commodity {
-	padding: 36rpx 14rpx;
+	padding: 36rpx 20rpx;
 	margin-top: 20rpx;
 	display: flex;
 	flex-wrap: wrap;
+	background-color: #FFFFFF;
+	.title {
+		width: 100%;
+		display: flex;
+		justify-content: space-between;
+		margin-bottom: 30rpx;
+		padding:0 20rpx;
+		.left {
+			display: flex;
+			justify-content: flex-start;
+			image{
+				width: 40rpx;
+				height: 40rpx;
+			}
+			.font {
+				margin-left: 10rpx;
+				font-size: 30rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #333333;
+			}
+		}
+		.right {
+			display: flex;
+			justify-content: flex-start;
+			align-items: center;
+			.right-font {
+				color: #a2a2a2;
+				font-size: 26rpx;
+				margin-right: 10rpx;
+			}
+			image {
+				
+				width: 16rpx;
+				height: 26rpx;
+			}
+		}
+	}
 	.commodity-item {
-		width: 348rpx;
+		width: 334rpx;
 		background: #ffffff;
 		box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
-		margin: 10rpx 6rpx 0;
 		border-radius: 10rpx;
+		margin: 0 10rpx;
 		.commodity-prc {
-			width: 344rpx;
-			height: 344rpx;
+			
+			width: 330rpx;
+			height: 330rpx;
 			border-radius: 10rpx;
 			position: relative;
 			image {
+				border-radius: 10rpx;
 				width: 100%;
 				height: 100%;
 			}

+ 163 - 0
pages/index/recommend.vue

@@ -0,0 +1,163 @@
+<template>
+	<view class="content">
+		<view class="recommend">
+			<view class="commodity-item" v-for="(item, index) in recommendList" @click="navToDetailPages(item)">
+				<view class="commodity-prc">
+					<image :src="item.image" mode=""></image>
+					<!-- <view class="fanli" v-if="item.type == 1">
+						<view class="fanli-bg"><image src="../../static/img/index-fanl.png" mode=""></image></view>
+						<view class="fanli-font flex">
+							<view class="font-left">购物最高可返消费金额的</view>
+							<view class="font-right">10<text>%</text></view>
+						</view>
+					</view> -->
+				</view>
+				<view class="commodity-info">
+					<view class="commodity-name clamp">{{ item.store_name }}</view>
+					<view class="commodity-systom clamp">{{ item.systom }}</view>
+					<view class="commodity-price">
+						¥{{ item.price }}
+						<text>¥{{ item.ot_price }}</text>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import { productIndexs } from '@/api/index.js';
+export default {
+	data() {
+		return {
+			recommendList: [],
+			id: ''
+		};
+	},
+	onLoad(option) {
+		if (option.type) {
+			this.id = option.type;
+		}
+		this.loadData();
+	},
+	methods: {
+		// 获取首页数据
+		loadData() {
+			productIndexs({}, this.id).then(({ data }) => {
+				this.recommendList = data.list; // 为你推荐
+				console.log('为你推荐', this.recommendList);
+			});
+		},
+		// 跳转热销商品
+		navToDetailPage(item) {
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + item.id
+			});
+		},
+		navToDetailPages(e) {
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + e.id
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.recommend {
+	padding: 36rpx 20rpx;
+	margin-top: 20rpx;
+	display: flex;
+	flex-wrap: wrap;
+	background-color: #FFFFFF;
+}
+.commodity-item {
+	width: 334rpx;
+	background: #ffffff;
+	box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
+	border-radius: 10rpx;
+	margin: 0 10rpx;
+	.commodity-prc {
+		width: 330rpx;
+		height: 330rpx;
+		border-radius: 10rpx;
+		position: relative;
+		image {
+			border-radius: 10rpx;
+			width: 100%;
+			height: 100%;
+		}
+		.fanli {
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			width: 344rpx;
+			height: 96rpx;
+			.fanli-bg {
+				position: absolute;
+				bottom: 0;
+				left: 0;
+				width: 344rpx;
+				height: 96rpx;
+			}
+			.fanli-font {
+				position: relative;
+				z-index: 10;
+				color: #ffffff;
+				height: 96rpx;
+				align-items: flex-end;
+				padding: 36rpx 10rpx 10rpx;
+				.font-left {
+					width: 226px;
+					font-size: 20rpx;
+					font-family: PingFang SC;
+					font-weight: 500;
+					color: #ffffff;
+				}
+				.font-right {
+					font-size: 62rpx;
+					font-family: Microsoft YaHei;
+					font-weight: bold;
+					color: #ffffff;
+					text {
+						font-size: 26rpx;
+					}
+				}
+			}
+		}
+	}
+	.commodity-info {
+		padding: 28rpx 20rpx 35rpx 24rpx;
+		.commodity-name {
+			width: 100%;
+			font-size: 30rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #333333;
+		}
+		.commodity-systom {
+			margin-top: 16rpx;
+			font-size: 26rpx;
+			font-family: PingFang SC;
+			font-weight: 500;
+			color: #666666;
+		}
+		.commodity-price {
+			margin-top: 34rpx;
+			font-size: 36rpx;
+			font-family: PingFang SC;
+			font-weight: bold;
+			color: #e83f30;
+			text {
+				display: inline-block;
+				padding-left: 6rpx;
+				font-size: 26rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				text-decoration: line-through;
+				color: #999999;
+			}
+		}
+	}
+}
+</style>

+ 1 - 1
pages/market/duihuan.vue

@@ -155,7 +155,7 @@ export default {
 			flex-direction: column;
 			align-items: center;
 			.font {
-				font-size: 42rpx;
+				font-size: 36rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
 				color: #000000;

+ 2 - 2
pages/money/phone.vue

@@ -105,12 +105,12 @@ export default {
 			getPhone({}).then(({data}) =>{
 				this.moneyList = data.recharge_quota;
 				this.id = data.recharge_quota[0].id;
-				this.money = data.recharge_quota[0].get_money;
+				this.money = data.recharge_quota[0].price;
 				console.log(data);
 			})
 		},
 		change(money){
-			this.money = money.get_money;
+			this.money = money.price;
 			this.id = money.id;
 		},
 		// 切换选中对象

+ 1 - 1
pages/money/publicW.vue

@@ -4,7 +4,7 @@
 			<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="body-title">
 				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的文件</view>
+				<view class="header">我的系统文件</view>
 			</view>
 			<view class="content-bg"><image src="../../static/img/user-fil.png" mode=""></image></view>
 			<view class="money-box">

+ 2 - 2
pages/money/publicWelfare.vue

@@ -4,7 +4,7 @@
 		<view class="status_bar"><!-- 这里是状态栏 --></view>
 			<view class="body-title">
 				<view class="goback-box" @click="toBack"><image class="goback" src="../../static/icon/fanhui.png" mode=""></image></view>
-				<view class="header">我的公益积分</view>
+				<view class="header">我的福利积分</view>
 			</view>
 			<view class="content-bg"><image src="../../static/img/user-integralP.png" mode=""></image></view>
 			<view class="money-box"><view class="money">{{ integral || 0 }}</view></view>
@@ -125,7 +125,7 @@ export default {
 			const arr = Object.keys(data.back);
 			console.log(arr);
 			arr.forEach(e => {
-				if(e == 'GYJF'){
+				if(e == 'FLJF'){
 					obj.integral = (data.back[e].money.money*1)
 				}
 			});

+ 2 - 2
pages/money/withdrawal.vue

@@ -23,7 +23,7 @@
 		</view>
 
 		<!-- #ifndef MP-WEIXIN -->
-		<view class="list" v-if="!weichatBsrowser">
+		<view class="list" >
 			<radio-group @change="tabRadio">
 				<!-- <label>
 					<view class="box">
@@ -68,7 +68,7 @@
 		</view>
 		<!-- #endif -->
 		<button class="add-btn up" @click="confirm">提交申请</button>
-		<button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/collection/collection')">账号管理</button>
+		<button class="add-btn modified"  @click="navTo('/pages/collection/collection')">账号管理</button>
 	</view>
 </template>
 

+ 63 - 31
pages/money/withdrawalJF.vue

@@ -18,6 +18,11 @@
 				<view class=" icon"><input class="input" type="password" v-model="pwd" placeholder="请输入支付密码" placeholder-class="placeholder" /></view>
 			</view>
 			<view class="interval"></view>
+			<view class="buttom" v-if="type == 'address'">
+				<text class="text">提现地址</text>
+				<view class=" icon"><input class="input" type="text" v-model="address" placeholder="请输入提现地址" placeholder-class="placeholder" /></view>
+			</view>
+			<view class="interval"></view>
 			<view class="tip">
 				<view class="tip-text" v-show="showText == false"></view>
 				<view class="tip-text" v-show="showText == true">提先数量最低为{{ minPrice }},手续费为{{ data.service*1 }}{{ data._money_type }}</view>
@@ -26,7 +31,7 @@
 		</view>
 
 		<!-- #ifndef MP-WEIXIN -->
-		<view class="list" v-if="!weichatBsrowser">
+		<view class="list">
 			<radio-group @change="tabRadio">
 				<!-- <label>
 					<view class="box">
@@ -37,6 +42,17 @@
 						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
 					</view>
 				</label> -->
+				<label>
+					<view class="box">
+						<view class="icon iconfont"><image class="icon-img" src="../../static/img/qianbao.png" mode=""></image></view>
+						<view class="title-box">
+							<view class="title">
+								<text>提现至钱包</text>
+							</view>
+						</view>
+						<view class="right"><radio value="address" color="#5dbc7c" :checked="type == 'address'" /></view>
+					</view>
+				</label>
 				<label>
 					<view class="box">
 						<view class="icon iconfont iconzhifubao"></view>
@@ -71,12 +87,12 @@
 		</view>
 		<!-- #endif -->
 		<button class="add-btn up" @click="confirm">提交申请</button>
-		<button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/collection/collection')">账号管理</button>
+		<button class="add-btn modified" @click="navTo('/pages/collection/collection')">账号管理</button>
 	</view>
 </template>
 
 <script>
-import { cashmoney_type, calculator, wallet } from '@/api/finance.js';
+import { cashmoney_type, calculator, wallet, cash } from '@/api/finance.js';
 import { extractCash } from '@/api/wallet.js';
 import { mapState, mapMutations } from 'vuex';
 export default {
@@ -91,6 +107,7 @@ export default {
 			coldMoney: '', //冻结中的金额
 			pwd:'',//交易密码
 			data:'',
+			address:'',//提币地址
 			showText: false,
 			aliData: { fullname: '', alino: '' },
 			bankData: { fullname: '', bank: '', bankno: '' },
@@ -168,49 +185,63 @@ export default {
 		},
 		// 提交
 		confirm() {
+			const obj = this
 			console.log(this.withdrawal);
 			if (this.withdrawal === '') {
-				this.$api.msg('请填写需要提现的金');
+				this.$api.msg('请填写需要提现的金');
 				return;
 			}
 			if (this.withdrawal == 0) {
-				this.$api.msg('提现金不能为0');
+				this.$api.msg('提现金不能为0');
 				return;
 			}
 			if (this.withdrawal < this.minPrice) {
 				this.$api.msg('提现金额不能低于最小金额');
 				return;
 			}
-			let data = {
-				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-				password: this.pwd,
-				money: this.withdrawal, //金额
-				money_type: this.moneyType
-			};
-			if (this.type == 'alipay') {
-				data.name = this.aliData.fullname;
-				data.alipay_code = this.aliData.alino;
-			}
-			if (this.type == 'bank') {
-				data.name = this.bankData.fullname;
-				data.bankname = this.bankData.bank;
-				data.cardnum = this.bankData.bankno;
-			}
-
-			extractCash(data)
-				.then(e => {
+			if(this.type == 'address'){
+				cash({
+					money_type: obj.moneyType,
+					money: obj.withdrawal,
+					address: obj.address,
+					password: obj.password
+				}).then(data => {
 					uni.navigateTo({
 						url: '/pages/money/success?type=1'
 					});
-					// uni.showToast({
-					// 	title: '提交成功',
-					// 	duration: 2000,
-					// 	position: 'top'
-					// });
-				})
-				.catch(e => {
-					console.log();
 				});
+			}else {
+				let data = {
+					extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信 地址address
+					password: this.pwd,
+					money: this.withdrawal, //金额
+					money_type: this.moneyType
+				};
+				if (this.type == 'alipay') {
+					data.name = this.aliData.fullname;
+					data.alipay_code = this.aliData.alino;
+				}
+				if (this.type == 'bank') {
+					data.name = this.bankData.fullname;
+					data.bankname = this.bankData.bank;
+					data.cardnum = this.bankData.bankno;
+				}
+				
+				extractCash(data)
+					.then(e => {
+						uni.navigateTo({
+							url: '/pages/money/success?type=1'
+						});
+						// uni.showToast({
+						// 	title: '提交成功',
+						// 	duration: 2000,
+						// 	position: 'top'
+						// });
+					})
+					.catch(e => {
+						console.log();
+					});
+			}
 		}
 	}
 };
@@ -239,6 +270,7 @@ page {
 		font-family: SourceHanSansCN;
 		font-weight: 500;
 		color: #333333;
+		
 		.input {
 			text-align: right;
 			flex: 1;

+ 3 - 0
pages/order/createOrder.vue

@@ -185,6 +185,9 @@ export default {
 		checkedPoints(newValue, oldValue) {
 			this.integralShow = false;
 			this.payMoneyNub();
+		},
+		addressData(newValue, oldValue) {
+			this.payMoneyNub();
 		}
 	},
 	computed: {

+ 1 - 1
pages/product/list.vue

@@ -106,7 +106,7 @@ export default {
 	// #endif
 	onLoad(options) {
 		// #ifdef H5
-		this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
+		// this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
 		// #endif
 		this.cateId = options.tid || '';
 		this.loadCateList();

+ 1 - 1
pages/product/ping.vue

@@ -137,7 +137,7 @@ page {
 				}
 			}
 			.price {
-				font-size: 36rpx;
+				font-size: 30rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
 				color: #ff1135;

+ 44 - 45
pages/product/product.vue

@@ -3,7 +3,7 @@
 		<view class="carousel">
 			<swiper indicator-dots :circular="true" duration="400">
 				<swiper-item class="swiper-item" v-for="(item, index) in imgList" :key="index">
-					<view class="image-wrapper"><image :src="item" class="loaded" mode="aspectFill"></image></view>
+					<view class="image-wrapper"><image :src="item" class="loaded" mode="scaleToFill"></image></view>
 				</swiper-item>
 			</swiper>
 		</view>
@@ -43,7 +43,7 @@
 			<view class="bot-row">
 				<text>快递: {{ goodsObjact.postage }}</text>
 				<text style="text-align: center;">销量: {{ goodsObjact.sales }}</text>
-				<text style="text-align: right;">{{ storeObjact.address | address}}</text>
+				<text style="text-align: right;">{{ storeObjact.address | address }}</text>
 			</view>
 		</view>
 		<!-- 评价 -->
@@ -163,7 +163,7 @@
 				<view class="a-t">
 					<image :src="actionImage"></image>
 					<view class="right">
-						<view class="good-name clamp">{{goodsObjact.store_name}}</view>
+						<view class="good-name clamp">{{ goodsObjact.store_name }}</view>
 						<text class="price">¥{{ actionPrice }}</text>
 						<!-- <text class="stock">库存:{{ goodsObjact.stock }}件</text> -->
 						<!-- <view class="selected" v-if="goodsType == 0">
@@ -192,7 +192,7 @@
 						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box>
 					</view>
 				</view>
-				<button class="btn" @click.stop="buy">完成</button>
+				<button class="btn" @click.stop="buy">确定</button>
 			</view>
 		</view>
 		<view :class="{ seckillBottom: goodsType == 1, goodsBottom: goodsType == 0 }"></view>
@@ -207,8 +207,9 @@ import uniNumberBox from '@/components/uni-number-box.vue';
 import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
 import { goodsDetail, cartAdd, collectAdd, collectDel, seckillGoods, groupGoods } from '@/api/product.js';
 // #ifdef H5
-import { weixindata } from '@/utils/wxAuthorized';
+import { weixindata,shareLoad } from '@/utils/wxAuthorized';
 import { mapState } from 'vuex';
+import weixinObj from "@/plugin/jweixin-module/index.js";
 // #endif
 export default {
 	components: {
@@ -217,11 +218,11 @@ export default {
 	},
 	filters: {
 		address(val) {
-			let str = ''
-			if(val) {
-				str = val[0] + ' ' + val[1]
+			let str = '';
+			if (val) {
+				str = val[0] + ' ' + val[1];
 			}
-			return str
+			return str;
 		}
 	},
 	data() {
@@ -234,7 +235,7 @@ export default {
 			specClass: 'none', //显示隐藏弹窗
 			shareList: [], //分享列表
 			goodsObjact: {}, //保存商品数据
-			storeObjact: {},//保存店铺数据
+			storeObjact: {}, //保存店铺数据
 			//图片循环
 			imgList: [],
 			specList: [],
@@ -346,14 +347,14 @@ export default {
 			goodsDetail({}, this.goodsid).then(function({ data }) {
 				obj.details = data;
 				let goods = data.storeInfo;
-				let store_info = data.system_store// 保存店铺信息
-				console.log(store_info)
-				obj.storeObjact = store_info
+				let store_info = data.system_store; // 保存店铺信息
+				console.log(store_info);
+				obj.storeObjact = store_info;
 				obj.goodsObjact = goods;
 				obj.reply = data.reply; //保存评论列表
 				obj.imgList = goods.slider_image; //保存轮播图
 				obj.specList = data.productAttr; //保存分类列表
-				console.log(data.productAttr)
+				console.log(data.productAttr);
 				obj.productValue = data.productValue; //保存分类查询数据
 				obj.actionPrice = goods.price; //保存默认选中商品价格
 				obj.actionImage = goods.image_base; //保存默认选中商品价格
@@ -366,42 +367,41 @@ export default {
 					let attrValue = obj.specList[i].attr_value[0];
 					attrValue.check = true;
 					obj.specSelected.push(attrValue.attr);
-				
 				}
-				
+
 				//保存默认选中的对象字符串名称
 				let str = obj.specSelected.join(',');
 				// 设置默认值
 				obj.actionImage = obj.productValue[str].image;
 				obj.uniqueId = obj.productValue[str].unique;
 				// #ifdef H5
-				// obj.shareDate();
+				obj.shareDate();
 				// #endif
 			});
 		},
 		// #ifdef H5
 		// 加载微信html5页面分享方法
-		// shareDate() {
-		// 	let obj = this;
-		// 	// 保存分享人id链接
-		// 	let url = window.location.href + '&spread=' + this.userInfo.uid;
-		// 	// 判断是否微信浏览器
-		// 	let bool = uni.getStorageSync('weichatBrowser') || '';
-		// 	if (bool) {
-		// 		// 过滤微信强制添加的链接地址
-		// 		url = url.replace(/[\?,&]from=singlemessage/g, '');
-		// 		let data = {
-		// 			link: url, // 分享链接
-		// 			imgUrl: obj.goodsObjact.image, // 分享图标
-		// 			desc: obj.goodsObjact.store_info,
-		// 			title: obj.goodsObjact.store_name,
-		// 			success: function(e) {
-		// 				console.log(e);
-		// 			}
-		// 		};
-		// 		weixindata(data);
-		// 	}
-		// },
+		shareDate() {
+			let obj = this;
+			// 保存分享人id链接
+			let url = window.location.href + '&spread=' + this.userInfo.uid;
+			// 判断是否微信浏览器
+			let bool = uni.getStorageSync('weichatBrowser') || '';
+			if (bool) {
+				// 过滤微信强制添加的链接地址
+				url = url.replace(/[\?,&]from=singlemessage/g, '');
+				let data = {
+					link: url, // 分享链接
+					imgUrl: obj.goodsObjact.image, // 分享图标
+					desc: obj.goodsObjact.store_info,
+					title: obj.goodsObjact.store_name,
+					success: function(e) {
+						console.log(e);
+					}
+				};
+				shareLoad(data);
+			}
+		},
 		// #endif
 		// 购买数量变化
 		numberChange(e) {
@@ -470,7 +470,7 @@ export default {
 				cartNum: obj.goodsNumber, //商品数量
 				uniqueId: obj.uniqueId, //商品标签
 				new: '1', //商品是否新增加到购物车1为不加入0为加入
-				mer_id: obj.shopId,
+				mer_id: obj.shopId
 				// type: 0,//0为余额支付  1为消费券支付 2为积分支付
 			};
 			if (obj.type == 2) {
@@ -916,7 +916,6 @@ page {
 			width: 170rpx;
 			height: 170rpx;
 			flex-shrink: 0;
-			margin-top: -40rpx;
 			border-radius: 8rpx;
 		}
 		.right {
@@ -932,7 +931,7 @@ page {
 				font-size: 30rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
-				color: #1D2023;
+				color: #1d2023;
 				line-height: 42rpx;
 				margin-bottom: 15rpx;
 			}
@@ -940,7 +939,7 @@ page {
 				font-size: 60rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
-				color: #FF6F0F;
+				color: #ff6f0f;
 				// font-size: $font-lg;
 				// color: $uni-color-primary;
 				// margin-bottom: 10rpx;
@@ -1141,12 +1140,12 @@ page {
 			padding: 0;
 			border-radius: 0;
 			// background: transparent;
-			background: #FFB238;
+			background: #ffb238;
 			&.buy-now-btn {
-				background-color: #FFB238;
+				background-color: #ffb238;
 			}
 			&.add-cart-btn {
-				background: linear-gradient(0deg, #2E58FF, #32C6FF);
+				background: linear-gradient(0deg, #2e58ff, #32c6ff);
 			}
 		}
 	}

+ 1 - 1
pages/product/productDuhuan.vue

@@ -73,7 +73,7 @@
 						<uni-number-box class="step" :isMin="true" :value="goodsNumber" :min="1" :max="goodsNumberMax" @eventChange="numberChange"></uni-number-box>
 					</view>
 				</view>
-				<button class="btn" @click.stop="buy">完成</button>
+				<button class="btn" @click.stop="buy">确定</button>
 			</view>
 		</view>
 		<view :class="{ seckillBottom: goodsType == 1, goodsBottom: goodsType == 0 }"></view>

+ 448 - 0
pages/product/search.vue

@@ -0,0 +1,448 @@
+<template>
+	<view class="content">
+		<!-- 兼容小程序搜索 -->
+		<!-- #ifdef MP || APP-PLUS -->
+		<view class="vheight"></view>
+		<view class="input-box flex">
+			<view class=" input-content flex">
+				<view class="iconfont iconsearch"></view>
+				<view class="input"><input type="text" v-model="keyword" placeholder="请输入搜索内容" /></view>
+			</view>
+			<view class="input-button flex" @click="navTo"><text>搜索</text></view>
+		</view>
+		<!-- #endif -->
+		<swiper :current="tabCurrentIndex" class="swiper-box " duration="300">
+			<swiper-item class="search-hot">
+				<view class="title"><text>热门搜索</text></view>
+				<view class="hot-list">
+					<view @click="clickHotText(ls)" class="list-item" :key="ind" v-for="(ls, ind) in list">
+						<text>{{ ls }}</text>
+					</view>
+				</view>
+			</swiper-item>
+			<swiper-item class="search-hot position-relative">
+				<view class="navbar">
+					<view class="nav-item" @click="defaultSearch()">默认</view>
+					<view class="nav-item" :class="{ current: searchType === 1 }" @click="sortTab(1)">
+						<text>销量优先</text>
+						<view class="p-box">
+							<text :class="{ active: searchType === 1 && numberOrder === 1 }" class="iconfont iconfold"></text>
+							<text :class="{ active: searchType === 1 && numberOrder === 2 }" class="iconfont iconfold xia"></text>
+						</view>
+					</view>
+					<view class="nav-item" :class="{ current: searchType === 2 }" @click="sortTab(2)">
+						<text>价格</text>
+						<view class="p-box">
+							<text :class="{ active: searchType === 2 && priceOrder === 1 }" class="iconfont iconfold"></text>
+							<text :class="{ active: searchType === 2 && priceOrder === 2 }" class="iconfont iconfold xia"></text>
+						</view>
+					</view>
+					<view class="nav-item" :class="{ current: newOrder == 1 }" @click="newGoodsTab()">新品</view>
+				</view>
+				<scroll-view scroll-y class="cate-list" @scrolltolower='getProducts'>
+					<view class="guess-section">
+						<view v-for="(item, index) in goodsList" :key="index" class="guess-item" @click="navToDetailPage(item)">
+							<view class="image-wrapper"><image :src="item.image" mode="aspectFill"></image></view>
+							<text class="title clamp margin-c-20">{{ item.store_name }}</text>
+							<view class="cmy-hr"></view>
+							<view class="price margin-c-20 flex">
+								<view>
+									<text class="font-size-sm ">¥</text>
+									{{ item.price }}
+								</view>
+								<view class="font-size-sm">
+									<text class="font-color-gray">{{ item.sales }}人购买</text>
+								</view>
+							</view>
+						</view>
+					</view>
+					<!-- <uni-load-more :status="loadingType"></uni-load-more> -->
+				</scroll-view>
+			</swiper-item>
+		</swiper>
+	</view>
+</template>
+
+<script>
+import { searchKeyword, getProducts } from '@/api/product.js';
+export default {
+	data() {
+		return {
+			arrlist: [], //热门关键词
+			keyword: '', //关键字
+			list: [], //搜索内容
+			tabCurrentIndex: 0, //切换
+			goodsList: [],
+			limit: 6, //每次加载数据条数
+			page: 1, //当前页数
+			loadingType: 'more', //加载更多状态
+			numberOrder: 1, //1 销量从低到高 2销量从高到低
+			priceOrder: 1, //1 价格从低到高 2价格从高到低
+			newOrder: 0, //0 不是新品 1是新品
+			searchType: 0 //0为默认查询 1为销量 2 为价格
+		};
+	},
+	// #ifndef MP
+	//点击导航栏 buttons 时触发
+	onNavigationBarButtonTap(e) {
+		const index = e.index;
+		if (index === 0) {
+			this.navTo();
+		}
+	},
+	// 点击键盘搜索事件
+	onNavigationBarSearchInputConfirmed(e) {
+		this.navTo();
+	},
+	// 搜索栏内容变化事件
+	onNavigationBarSearchInputChanged(e) {
+		this.keyword = e.text;
+	},
+	// #endif
+	onLoad() {
+		this.loadData();
+	},
+	//下拉刷新
+		onPullDownRefresh() {
+			this.page = 1
+			this.getProducts('refresh');
+		},
+	methods: {
+		// 加载商品
+		async getProducts(type, loading) {
+			let obj = this;
+			// 判断是否为加载数据
+			if (type !== 'refresh') {
+				//没有更多数据直接跳出方法
+				if (obj.loadingType === 'nomore') {
+					return;
+				} else {
+					// 设置当前为数据载入中
+					obj.loadingType = 'loading';
+				}
+			} else {
+				//当重新加载数据时更新状态为可继续添加数据
+				obj.loadingType = 'more';
+			}
+			let data = {
+				page: obj.page,
+				limit: obj.limit,
+				news: obj.newOrder,
+				keyword: this.keyword
+			};
+			// 判断是否为销售数量排序
+			if (this.searchType === 1) {
+				data.salesOrder = obj.numberOrder === 1 ? 'asc' : 'desc';
+			}
+			// 判断是否为金额排序
+			if (this.searchType === 2) {
+				data.priceOrder = obj.priceOrder === 1 ? 'asc' : 'desc';
+			}
+			getProducts(data).then(e => {
+				if (type === 'refresh') {
+					obj.goodsList = [];
+				}
+				obj.goodsList = obj.goodsList.concat(e.data);
+				//判断是否还有下一页,有是more  没有是nomore
+				if (obj.limit == e.data.length) {
+					obj.page++;
+					obj.loadingType = 'more';
+				} else {
+					obj.loadingType = 'nomore';
+				}
+				// 判断是否为刷新数据
+				if (type === 'refresh') {
+					// 判断是否为点击搜索按钮跳转加载
+					if (loading == 1) {
+						uni.hideLoading();
+					} else {
+						uni.stopPullDownRefresh();
+					}
+				}
+			});
+		},
+		// 点击关键词触发事件
+		clickHotText(e) {
+			this.keyword = e;
+			this.navTo();
+		},
+		// 加载搜索关键字
+		async loadData() {
+			searchKeyword({})
+				.then(e => {
+					this.list = e.data;
+				})
+				.catch(e => {
+					console.log(e);
+				});
+		},
+		// 点击触发搜索事件
+		navTo() {
+			this.tabCurrentIndex = 1;
+			this.infoData()
+		},
+		// 默认搜索
+		defaultSearch() {
+			// 初始化查询
+			this.numberOrder = '';
+			this.priceOrder = '';
+			this.newOrder = 0;
+			this.searchType = 0;
+			this.infoData();
+		},
+		// 是否为新品
+		newGoodsTab() {
+			this.newOrder = this.newOrder === 1 ? 0 : 1;
+			this.infoData();
+		},
+		// 排序
+		sortTab(nub) {
+			this.searchType = nub;
+			if (this.searchType === 1) {
+				this.numberOrder = this.numberOrder === 1 ? 2 : 1;
+			}
+			if (this.searchType === 2) {
+				this.priceOrder = this.priceOrder === 1 ? 2 : 1;
+			}
+			this.infoData();
+		},
+		// 查询切换后初始化
+		infoData() {
+			// 初始化页数
+			this.page = 1;
+			// 初始化数组
+			uni.pageScrollTo({
+				duration: 300,
+				scrollTop: 0
+			});
+			// 加载数据
+			this.getProducts('refresh', 1);
+			uni.showLoading({
+				title: '正在加载'
+			});
+		},
+		navToDetailPage(item) {
+			//测试数据没有写id,用title代替
+			let id = item.id;
+			uni.navigateTo({
+				url: '/pages/product/product?id=' + id
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+page,
+.content {
+	height: 100%;
+	background-color: $page-color-base;
+}
+/* #ifdef MP || APP-PLUS */
+.vheight{
+	height: var(--status-bar-height);
+	background-color: #FFFFFF;
+}
+.input-box {
+	padding: 25rpx;
+	background-color: #ffffff;
+	height: 44px;
+	.iconsearch {
+		font-size: 50rpx;
+	}
+	.input-content {
+		border-radius: 99rpx;
+		flex-grow: 1;
+		padding: 10rpx 30rpx;
+		background-color: rgba(231, 231, 231, 0.7);
+		.input {
+			flex-grow: 1;
+			input {
+				font-size: $font-lg;
+			}
+		}
+	}
+	.input-button {
+		padding-left: 20rpx;
+		font-size: $font-lg;
+		height: 100%;
+	}
+}
+/* #endif */
+
+.swiper-box {
+	/* #ifndef MP */
+	height: 100%;
+	/* #endif */
+	/* #ifdef MP */
+	height: calc(100% - 44px);
+	/* #endif */
+	.search-hot {
+		padding: 25rpx;
+		.title {
+			font-size: $font-lg;
+			color: $font-color-light;
+		}
+		.hot-list {
+			display: flex;
+			flex-wrap: wrap;
+			margin-top: 30rpx;
+			.list-item {
+				padding: 10rpx 20rpx;
+				border: 1px solid $border-color-dark;
+				color: $font-color-dark;
+				font-size: $font-base;
+				margin-right: 20rpx;
+				margin-bottom: 20rpx;
+			}
+		}
+	}
+}
+
+// 订单
+%icon {
+	margin-right: 10rpx;
+	display: inline-block;
+	padding: 2rpx 10rpx;
+	border: 1rpx solid $color-yellow;
+	color: $color-yellow;
+	line-height: 1;
+	font-size: $font-base;
+	border-radius: 10rpx;
+}
+.guess-section {
+	display: flex;
+	flex-wrap: wrap;
+	.guess-item {
+		overflow: hidden;
+		display: flex;
+		flex-direction: column;
+		width: 48%;
+		margin-bottom: 4%;
+		border-radius: $border-radius-sm;
+		background-color: white;
+		box-shadow: $box-shadow;
+		&:nth-child(2n + 1) {
+			margin-right: 4%;
+		}
+	}
+	.image-wrapper {
+		width: 100%;
+		height: 330rpx;
+		border-radius: 3px;
+		overflow: hidden;
+		image {
+			width: 100%;
+			height: 100%;
+			opacity: 1;
+		}
+	}
+	.title {
+		font-size: $font-base;
+		color: $font-color-dark;
+		font-weight: bold;
+		line-height: 80rpx;
+	}
+	.price {
+		font-size: $font-lg;
+		color: $font-color-base;
+		font-weight: bold;
+		line-height: 1;
+		line-height: 80rpx;
+	}
+
+	.icon {
+		@extend %icon;
+	}
+
+	.detail {
+		line-height: 1;
+	}
+	.tip {
+		color: white;
+		background-color: $color-yellow;
+		line-height: 1.5;
+		font-size: $font-sm;
+		padding-left: 20rpx;
+	}
+}
+
+.navbar {
+	position: absolute;
+	top: 0;
+	left: 0;
+	display: flex;
+	width: 100%;
+	height: 40px;
+	background: #fff;
+	box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.06);
+	z-index: 10;
+	.nav-item {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		font-size: 30rpx;
+		color: $font-color-dark;
+		position: relative;
+		&.current {
+			color: $base-color;
+			&:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: 0;
+				transform: translateX(-50%);
+				width: 120rpx;
+				height: 0;
+				border-bottom: 4rpx solid $base-color;
+			}
+		}
+	}
+	.p-box {
+		display: flex;
+		flex-direction: column;
+		.iconfont {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			width: 30rpx;
+			height: 14rpx;
+			line-height: 1;
+			margin-left: 4rpx;
+			font-size: 26rpx;
+			color: #888;
+			&.active {
+				color: $base-color;
+			}
+		}
+		.xia {
+			transform: scaleY(-1);
+		}
+	}
+	.cate-item {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100%;
+		width: 80rpx;
+		position: relative;
+		font-size: 44rpx;
+		&:after {
+			content: '';
+			position: absolute;
+			left: 0;
+			top: 50%;
+			transform: translateY(-50%);
+			border-left: 1px solid #ddd;
+			width: 0;
+			height: 36rpx;
+		}
+	}
+}
+.cate-list {
+	height: 100%;
+	padding-top: 40px;
+}
+</style>

+ 249 - 43
pages/public/login.vue

@@ -1,50 +1,177 @@
 <template>
 	<view class="container">
-		<view class="loginTitle">Welcome星拼乐</view>
-		<view class="loginText">请使用您的账号登录</view>
+		<view class="top"><image src="../../static/img/login-bg.png" mode=""></image></view>
+		<view class="logo">
+			<view class="logo-img"><image src="../../static/img/log.png" mode=""></image></view>
+			<view class="logo-title">星拼乐</view>
+		</view>
 		<view class="login-box">
-			<view class="username">账号</view>
+			<view class="username"><image src="../../static/img/phone.png" mode=""></image></view>
 			<input class="input-box" type="text" v-model="phone" placeholder="请输入账号" />
 		</view>
 		<view class="login-box">
-			<view class="username">密码</view>
+			<view class="username" style="width: 30rpx; height: 36rpx;"><image src="../../static/img/zfpwd.png" mode=""></image></view>
 			<input class="input-box" type="password" v-model="password" placeholder="请输入密码" />
 		</view>
 
-		<view class="forget flex">
-			
-			<text @click="navTo('/pages/public/forget')">忘记密码</text>
-		</view>
 		<view class="login" @click="toLogin">登录</view>
-		<view class="login-tip">
-			还没有账号?
-			<text class="register" @click="navTo('/pages/public/register')">立即注册</text>
+		<view class="forget flex">
+			<view @click="navTo('/pages/public/forget')">忘记密码</view>
+			<view class="shu"></view>
+			<view class="login-tip"><text class="register" @click="navTo('/pages/public/register')">立即注册</text></view>
 		</view>
+		<!-- <view class="flex other">
+			<view class="fenge"></view>
+			<view class="qita">其他方式登录</view>
+			<view class="fenge"></view>
+		</view> -->
+		<!-- #ifndef APP-PLUS -->
+		<view class="weixin" @click="wecahtLogin('weixin')"><image src="/static/img/login-weixin.png"></image></view>
+		<view class="weixin_text" @click="wecahtLogin('weixin')">微信登录</view>
+		<!-- #endif -->
+		<!-- #ifdef APP-PLUS -->
+		<block v-if="!is_ios">
+			<view class="weixin" @click="wecahtLogin('weixin')"><image src="/static/img/login-weixin.png" mode="scaleToFill"></image></view>
+			<view class="weixin_text" @click="wecahtLogin('weixin')">微信登录</view>
+		</block>
+		<block v-else>
+			<view class="ios_login flex" @click="wecahtLogin('weixin')">
+				<text class="iconfont iconweixin"></text>
+				<text class="weixin_text">微信登录</text>
+			</view>
+			<view v-if="is_apple_login" class="ios_login flex" @click="wecahtLogin('apple')">
+				<image class="loginIcon" src="/static/static/icon/appleIcon.png" mode=" scaleToFill"></image>
+				<text class="weixin_text">通过Apple登录</text>
+			</view>
+		</block>
+		<!-- #endif -->
 	</view>
 </template>
 
 <script>
 import { mapMutations } from 'vuex';
-import { login } from '@/api/login.js';
+import { login,loginWx } from '@/api/login.js';
 import { getUserInfo } from '@/api/user.js';
-import { getFileIndex,getFile,writerTxt,getFileText} from '@/utils/fileController.js';
+import { getFileIndex, getFile, writerTxt, getFileText } from '@/utils/fileController.js';
+// #ifdef H5
+import { loginWinxin } from '@/utils/wxAuthorized';
+// #endif
 export default {
 	data() {
 		return {
 			phone: '',
 			password: '',
+			// #ifdef APP-PLUS
+			is_ios: false, //判断是否为ios手机
+			is_apple_login: false //是否有ios授权登录功能
+			// #endif
 		};
 	},
 	onLoad() {
 		uni.hideLoading();
 	},
-	
+
 	methods: {
 		...mapMutations('user', ['setUserInfo', 'login']),
 		//登录
+		wecahtLogin(type) {
+			let obj = this;
+			// #ifdef H5
+			let weichatBrowser = uni.getStorageSync('weichatBrowser');
+			if (weichatBrowser) {
+				loginWinxin();
+			}
+			// #endif
+			// #ifdef APP-PLUS
+			uni.login({
+				provider: type,
+				success(e) {
+					console.log(e,'e12345678989789');
+					uni.getUserInfo({
+						provider: type,
+						success(es) {
+							console.log(es,"es123456789")
+							if (type === 'weixin') {
+								console.log('weixin')
+								loginWx(es.userInfo)
+									.then(e => {
+										uni.showLoading({
+											title:'登录中'
+										})
+										console.log(e,'123456')
+										uni.setStorageSync('token', e.data.token);
+										getUserInfo({}).then(e => {
+											obj.login();
+											// 保存返回用户数据
+											obj.setUserInfo(e.data);
+											uni.hideLoading()
+											//成功跳转首页
+											uni.switchTab({
+												url: '/pages/index/index'
+											});
+										});
+									})
+									.catch(e => {
+										console.log(e);
+										uni.showModal({
+											content: JSON.stringify(e),
+											success() {},
+											fail() {}
+										});
+									});
+							}
+							if (type === 'apple') {
+								console.log(es.userInfo);
+								applelogin({
+									account: es.userInfo.openId
+								})
+									.then(function(e) {
+										console.log(e, 'token');
+										uni.setStorageSync('token', e.data.token);
+										getUserInfo({}).then(e => {
+											obj.login();
+											// 保存返回用户数据
+											obj.setUserInfo(e.data);
+											//成功跳转首页
+											uni.switchTab({
+												url: '/pages/index/index'
+											});
+										});
+									})
+									.catch(function(e) {
+										console.log(e);
+									});
+							}
+						},
+						fail(es) {
+							uni.showModal({
+								content: JSON.stringify(es),
+								success() {
+									// obj.login();
+									// // 保存返回用户数据
+									// obj.setUserInfo(e.data);
+									// //成功跳转首页
+									// uni.switchTab({
+									// 	url: '/pages/index/index'
+									// });
+								}
+							});
+						}
+					});
+				},
+				fail(e) {
+					uni.showModal({
+						title: '提示',
+						content: JSON.stringify(e),
+						showCancel: false
+					});
+				}
+			});
+			// #endif
+		},
 		async toLogin() {
 			uni.showLoading({
-				title:'正在登陆中'
+				title: '正在登陆中'
 			});
 			let obj = this;
 			obj.logining = true;
@@ -63,14 +190,13 @@ export default {
 				.then(function(e) {
 					uni.setStorageSync('token', e.data.token);
 					getUserInfo({}).then(e => {
-						
 						obj.login();
 						//#ifdef APP-PLUS
 						getFileIndex().then(info => {
-							getFile(info,'userInfo').then(data =>{
-								writerTxt(data,e.data)
-							})
-						})
+							getFile(info, 'userInfo').then(data => {
+								writerTxt(data, e.data);
+							});
+						});
 						//#endif
 						// 保存返回用户数据
 						obj.setUserInfo(e.data);
@@ -93,8 +219,7 @@ export default {
 		// 后退
 		navBack() {
 			uni.navigateBack();
-		},
-		
+		}
 	}
 };
 </script>
@@ -103,9 +228,40 @@ export default {
 page {
 	min-height: 100%;
 	background-color: #ffffff;
-	.container {
+}
+.top {
+	width: 750rpx;
+	height: 470rpx;
+	image {
 		width: 100%;
-		padding: 30% 60rpx;
+		height: 100%;
+	}
+}
+.logo {
+	position: absolute;
+	left: 50%;
+	right: 0;
+	top: 110rpx;
+	margin-left: -80rpx;
+	.logo-img {
+		width: 160rpx;
+		height: 160rpx;
+		box-shadow: 0px 12rpx 13rpx 0px rgba(51, 145, 255, 0.47);
+		border-radius: 50%;
+		image {
+			width: 100%;
+			height: 100%;
+			border-radius: 50%;
+		}
+	}
+	.logo-title {
+		width: 160rpx;
+		text-align: center;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: 400;
+		color: #ffffff;
+		margin-top: 10rpx;
 	}
 }
 .loginTitle {
@@ -121,37 +277,63 @@ page {
 	padding-bottom: 34rpx;
 }
 .login-box {
-	padding-top: 90rpx;
+	display: flex;
+	justify-content: flex-start;
+	border-bottom: 1px solid #eeeeee;
+	margin: 90rpx 72rpx 0;
+	padding-bottom: 28rpx;
 	.username {
-		padding-bottom: 30rpx;
+		width: 26rpx;
+		height: 43rpx;
 		font-weight: 500;
 		color: #333333;
 		font-size: 32rpx;
+		flex-shrink: 0;
+		image {
+			width: 100%;
+			height: 100%;
+		}
+	}
+	.input-box {
+		margin-left: 40rpx;
+		width: 100%;
 	}
 }
 .forget {
-	justify-content: flex-end;
+	justify-content: center;
 	text-align: right;
-	margin: 70rpx 0rpx;
+	margin: 36rpx 0rpx;
 	font-weight: 500;
-	color: #333333;
+	color: #5771df;
 	font-size: 28rpx;
-	.mui-checkbox{
+	.mui-checkbox {
 		font-weight: 500;
 		color: #333333;
 		font-size: 35rpx;
 	}
+	.shu {
+		height: 26rpx;
+		width: 1px;
+		background-color: #477bff;
+		margin: 0 10rpx;
+	}
 }
 .login {
-	background: linear-gradient(0deg, #2E58FF, #32C6FF);
-	margin-top: 20rpx;
+	background: linear-gradient(0deg, #2e58ff, #32c6ff);
+	margin: 100rpx auto 0;
+	width: 604rpx;
+	height: 90rpx;
+	background: linear-gradient(90deg, #33b0ff 0%, #337bff 40%, #1228f6 100%);
+	box-shadow: 0px 12rpx 13rpx 0px rgba(51, 145, 255, 0.2);
+	border-radius: 10rpx;
+	font-size: 34rpx;
+	font-family: SourceHanSansCN;
+	font-weight: 400;
 	color: #ffffff;
+	line-height: 90rpx;
 	text-align: center;
-	padding: 26rpx 0rpx;
-	border-radius: 50rpx;
 }
 .login-tip {
-	padding: 60rpx 0rpx;
 	text-align: center;
 	font-weight: 500;
 	color: #333333;
@@ -160,12 +342,36 @@ page {
 		color: #5771df;
 	}
 }
-// /* input 样式 */
-// .input-placeholder {
-// 	color: #ffffff;
-// }
-
-// .placeholder {
-// 	color: #ffffff;
-// }
+.other {
+	margin-top: 60rpx;
+	.fenge {
+		width: 30%;
+		height: 2rpx;
+		background-color: #eeeeee;
+	}
+	.qita {
+		font-size: 28rpx;
+		color: #999999;
+	}
+}
+.weixin {
+	width: 75rpx;
+	height: 75rpx;
+	margin: 25rpx auto;
+}
+.weixin image {
+	width: 100%;
+	height: 100%;
+}
+.weixin_text {
+	text-align: center;
+	font-size: 28rpx;
+	color: #999999;
+}
+.forget {
+	font-size: 28rpx;
+	width: 100%;
+	text-align: right;
+	color: #999999;
+}
 </style>

+ 83 - 65
pages/redirect/redirect.vue

@@ -1,10 +1,9 @@
 <template>
-	<view>
-	</view>
+	<view></view>
 </template>
 <script>
 import { getUserInfo } from '@/api/user.js';
-import { mapMutations,mapState } from 'vuex';
+import { mapMutations, mapState } from 'vuex';
 // #ifdef H5
 import { wechatAuth } from '@/api/wx';
 // #endif
@@ -19,32 +18,42 @@ export default {
 		let obj = this;
 		// 判断是否需要保存定向地址
 		// #ifdef H5
-		this.loadH5()
+		this.loadH5();
 		// #endif
 		// #ifdef MP-WEIXIN
-		this.loadMp(option)
+		this.loadMp(option);
 		// #endif
 	},
 	methods: {
-		...mapMutations('user',['login', 'setUserInfo']),
+		...mapMutations('user', ['login', 'setUserInfo']),
 		// #ifdef H5
 		loadH5() {
 			let obj = this;
 			let url = window.location.href;
 			let code = url.match(/code=([0-9]|[a-z]|[A-Z])*/g)[0].replace('code=', '');
-			let spread = uni.getStorageSync('spread')||'';
+			let spread = uni.getStorageSync('spread') || '';
 			wechatAuth({
 				code: code,
-				spread:spread,
-			}).then(({ data }) => {
-				obj.wchatAuth(data);
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
+				spread: spread
+			})
+				.then(({ data }) => {
+					obj.wchatAuth(data);
+				})
+				.catch(e => {
+					obj.wchatAuth(data);
+					// uni.showModal({
+					// 	title: '提示',
+					// 	content: '您未绑定手机号或邮箱,请您先去绑定手机号或邮箱',
+					// 	showCancel: false,
+					// 	success: function(res) {
+					// 		if (res.confirm) {
+					// 			uni.navigateTo({
+					// 				url: '/pages/set/phone'
+					// 			});
+					// 		}
+					// 	}
+					// });
 				});
-			});;
 		},
 		// #endif
 		// #ifdef MP-WEIXIN
@@ -68,17 +77,19 @@ export default {
 				spread_spid: spread_spid,
 				// #endif
 				// #ifdef MP
-				spread_code:spread_code
+				spread_code: spread_code
 				// #endif
-			}).then(({ data }) => {
-				obj.wchatAuth(data);
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
+			})
+				.then(({ data }) => {
+					obj.wchatAuth(data);
+				})
+				.catch(e => {
+					uni.showModal({
+						title: '错误',
+						content: JSON.stringify(e),
+						showCancel: false
+					});
 				});
-			});
 		},
 		// #endif
 		wchatAuth(data) {
@@ -86,51 +97,58 @@ export default {
 			// 保存token
 			uni.setStorageSync('token', data.token);
 			// 获取用户基础信息
-			getUserInfo({}).then(e => {
-				obj.login();
-				// 保存返回用户数据
-				obj.setUserInfo(e.data);
-				let ur = uni.getStorageSync('present')|| '/pages/index/index';
-				// 用于处理缓存bug
-				if (ur=='pages/product/product') {
-					ur = '/pages/index/index'
-				}
-				if (e.data.phone || e.data.email) {
+			console.log('获取用户信息')
+			getUserInfo({})
+				.then(e => {
+					obj.login();
+					// 保存返回用户数据
+					obj.setUserInfo(e.data);
+					let ur = uni.getStorageSync('present') || '/pages/index/index';
+					// 用于处理缓存bug
+					if (ur == 'pages/product/product') {
+						ur = '/pages/index/index';
+					}
+					console.log('跳转')
 					uni.switchTab({
-						url: ur,
-						fail(e) {
-							uni.navigateTo({
-								url: ur,
-								fail(e) {
-									uni.navigateTo({
-										url: '/pages/index/index',
-									});
-								}
-							});
-						}
+						url: '/pages/index/index'
 					});
-				}else {
+					// if (e.data.phone || e.data.email) {
+					// 	uni.switchTab({
+					// 		url: ur,
+					// 		fail(e) {
+					// 			uni.navigateTo({
+					// 				url: ur,
+					// 				fail(e) {
+					// 					uni.navigateTo({
+					// 						url: '/pages/index/index'
+					// 					});
+					// 				}
+					// 			});
+					// 		}
+					// 	});
+					// } else {
+					// 	uni.showModal({
+					// 		title: '提示',
+					// 		content: '请先绑定手机号或邮箱',
+					// 		showCancel: false,
+					// 		success: res => {
+					// 			uni.navigateTo({
+					// 				url: '/pages/set/phone'
+					// 			});
+					// 		},
+					// 		fail(e) {
+					// 			console.log(e);
+					// 		}
+					// 	});
+					// }
+				})
+				.catch(e => {
 					uni.showModal({
-						title: '提示',
-						content: '请先绑定手机号或邮箱',
-						showCancel: false,
-						success: res => {
-							uni.navigateTo({
-								url: '/pages/set/phone'
-							});
-						},
-						fail(e) {
-							console.log(e);
-						}
+						title: '错误',
+						content: JSON.stringify(e),
+						showCancel: false
 					});
-				}
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
 				});
-			});;
 		}
 	}
 };

+ 2 - 2
pages/set/set.vue

@@ -1,9 +1,9 @@
 <template>
 	<view class="center">
 		<view class="tt">
-			<view class="tt-box" @click="nav('/pages/user/approve')">
+			<view class="tt-box" @click="nav('/pages/set/phone')">
 				<!-- <image src="../../static/img/real_name.png" class="tt-icon1" mode=""></image> -->
-				<view class="tt-txt">实名认证</view>
+				<view class="tt-txt">绑定手机号或邮箱</view>
 				<image src="../../static/img/jiantou.png" class="next-icon" mode=""></image>
 			</view>
 			<view class="tt-box" @click="nav('/pages/set/password')">

+ 12 - 11
pages/user/assets.vue

@@ -23,11 +23,11 @@
 				<text>{{ userInfo.brokerage_price * 1 }}</text>
 				佣金
 			</view>
-			<view class="btn" @click="nav('/pages/money/award')">
+			<!-- <view class="btn" @click="nav('/pages/money/award')">
 				<image src="../../static/icon/assent2.png"></image>
 				<text>{{ candy || 0 }}</text>
 				糖果
-			</view>
+			</view> -->
 			<view class="btn" @click="nav('/pages/money/integralShopping')">
 				<image src="../../static/icon/assent3.png"></image>
 				<text>{{ userInfo.now_money * 1 }}</text>
@@ -38,30 +38,30 @@
 				<text>{{ scjf || 0 }}</text>
 				商城积分
 			</view>
-			<view class="btn" @click="nav('/pages/money/integralP')">
+			<!-- <view class="btn" @click="nav('/pages/money/integralP')">
 				<image src="../../static/icon/assent5.png"></image>
 				<text>{{ jf || 0 }}</text>
 				拼团积分
-			</view>
-			<view class="btn" @click="nav('/pages/money/frozen')">
+			</view> -->
+			<!-- <view class="btn" @click="nav('/pages/money/frozen')">
 				<image src="../../static/icon/assent6.png"></image>
 				<text>{{ ptdjjf || 0 }}</text>
 				拼团冻结积分
-			</view>
+			</view> -->
 			<view class="btn" @click="nav('/pages/money/publicWelfare')">
 				<image src="../../static/icon/assent7.png"></image>
 				<text>{{ gyjf || 0 }}</text>
-				公益积分
+				福利积分
 			</view>
-			<view class="btn" @click="nav('/pages/money/publicPing')">
+			<!-- <view class="btn" @click="nav('/pages/money/publicPing')">
 				<image src="../../static/icon/assent8.png"></image>
 				<text>{{ ptb || 0 }}</text>
 				拼团币
-			</view>
+			</view> -->
 			<view class="btn" @click="nav('/pages/money/publicW')">
 				<image src="../../static/icon/assent9.png"></image>
 				<text>{{ wjb || 0 }}</text>
-				文件
+				系统文件
 			</view>
 		</view>
 	</view>
@@ -110,7 +110,8 @@ export default {
 					if (e == 'SCJF') {
 						obj.scjf = data.back[e].money.money * 1;
 					}
-					if (e == 'GYJF') {
+					if (e == 'FLJF') {
+						console.log(e,'123456')
 						obj.gyjf = data.back[e].money.money * 1;
 					}
 					if (e == 'USDT') {

+ 11 - 2
pages/user/extension.vue

@@ -20,7 +20,7 @@
 			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
 				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadData">
 					<!-- 空白页 -->
-					<!-- <empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty> -->
+					<empty  v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
 
 					<!-- 订单列表 -->
 					<view v-for="(item, index) in tabItem.orderList" :key="index" class="order-item flex">
@@ -40,7 +40,7 @@
 							</view>
 						</view>
 					</view>
-					<!-- <uni-load-more :status="tabItem.loadingType"></uni-load-more> -->
+					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
 				</scroll-view>
 			</swiper-item>
 		</swiper>
@@ -49,7 +49,13 @@
 <script>
 import { spread } from '@/api/finance.js';
 import { mapState, mapMutations } from 'vuex';
+import uniLoadMore from '@/uview-ui/components/u-loadmore/u-loadmore.vue';
+import empty from '@/uview-ui/components/u-empty/u-empty.vue';
 export default {
+	components: {
+		empty,
+		uniLoadMore,
+	},
 	onReady(res) {
 		var _this = this;
 		uni.getSystemInfo({
@@ -464,4 +470,7 @@ page {
 		font-size: $font-lg;
 	}
 }
+.list-scroll-content{
+	height: 100%;
+}
 </style>

+ 12 - 1
pages/user/shareQrCode.vue

@@ -34,13 +34,24 @@ export default {
 				title: '加载中'
 			});
 			let obj = this;
+			//#ifdef H5
 			spreadBanner({
-				type:2
+				type:3//3是公众2是app
 			}).then(({ data }) => {
 				console.log(data)
 				obj.backImg = data[0].wap_poster;
 				uni.hideLoading();
 			});
+			//#endif
+			//#ifdef APP-PLUS
+				spreadBanner({
+					type:2//3是公众2是app
+				}).then(({ data }) => {
+					console.log(data)
+					obj.backImg = data[0].wap_poster;
+					uni.hideLoading();
+				});
+			//#endif
 		},
 		bc_code(){
 			let that = this;

+ 15 - 12
pages/user/user.vue

@@ -10,19 +10,21 @@
 					<view class="dl" v-if="userInfo.area_admin == 3"><image src="../../static/icon/shengdai.png" mode=""></image></view>
 				</view>
 				<view class="message">
+					<view class="phone">id:{{ userInfo.uid }}</view>
 					<view class="name">{{ userInfo.nickname }}</view>
-					<view class="phone">{{ userInfo.phone }}</view>
-					<view class="vip-box">
-						<view class="vip">会员等级LV.{{ userInfo.level }}</view>
+					<view class="phone">{{ userInfo.account }}</view>
+					<view class="vip-box" v-if="userInfo.level > 0">
+						<!-- <view class="vip" >会员等级LV.{{ userInfo.level }}</view> -->
+						<view class="vip" >会员等级{{ userInfo.level_info.name }}</view>
 					</view>
 				</view>
 			</view>
 		</view>
 		<view class="box">
 			<view class="sweets-box">
-				<view class="sweets" @click="nav('/pages/money/award')">
+				<view class="sweets" @click="nav('/pages/money/mallPoints')">
 					<view class="limit">{{ candy || 0 }}</view>
-					<view class="sweets-name">糖果</view>
+					<view class="sweets-name">商城积分</view>
 				</view>
 				<view class="jiange"></view>
 				<view class="sweets" @click="nav('/pages/money/integralShopping')">
@@ -35,9 +37,9 @@
 					<view class="sweets-name">佣金</view>
 				</view>
 				<view class="jiange"></view>
-				<view class="sweets" @click="nav('/pages/money/integralP')">
+				<view class="sweets" @click="nav('/pages/money/publicWelfare')">
 					<view class="limit">{{ jf || 0 }}</view>
-					<view class="sweets-name">拼团积分</view>
+					<view class="sweets-name">福利积分</view>
 				</view>
 			</view>
 			<view class="my-order">
@@ -171,8 +173,8 @@ export default {
 			erweima: '',
 			weixin: '',
 			wallet: '',
-			candy:'',//糖果数量
-			jf:'',//拼团积分
+			candy:'',//商城积分数量
+			jf:'',//福利积分数量
 		};
 	},
 	onShow() {
@@ -218,11 +220,12 @@ export default {
 				let ar = [];
 				arr.forEach(e => {
 					console.log(e,'11111')
-					if(e == 'LALA'){
+					if(e == 'SCJF'){
 						obj.candy = (data.back[e].money.money*1).toFixed(0)
 					}
-					if(e == 'USDC'){
+					if(e == 'FLJF'){
 						obj.jf = (data.back[e].money.money*1)
+						console.log(obj.jf,'123456');
 					}
 					ar.push(data.back[e]);
 				});
@@ -388,7 +391,7 @@ page,
 			margin-top: 10rpx;
 			display: flex;
 			align-items: center;
-
+			line-height: 1;
 			.vip {
 				padding: 6rpx 16rpx;
 				text-align: center;

BIN
static/img/index-good.png


BIN
static/img/index-vip.png


BIN
static/img/login-bg.png


BIN
static/img/qianbao.png


BIN
unpackage/cache/apk/__UNI__3CDE968_cm.apk


+ 1 - 1
unpackage/cache/apk/apkurl

@@ -1 +1 @@
-https://ide.dcloud.net.cn/build/download/a07a21e0-4bf6-11ec-8cfa-5d479bfce6f2
+https://ide.dcloud.net.cn/build/download/67c43510-50f0-11ec-83a2-a1575e3f6efb

File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/apk/cmManifestCache.json


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__3CDE968/app-config-service.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__3CDE968/app-service.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__3CDE968/app-view.js


File diff suppressed because it is too large
+ 0 - 0
unpackage/cache/wgt/__UNI__3CDE968/manifest.json


BIN
unpackage/cache/wgt/__UNI__3CDE968/static/img/login-bg.png


BIN
unpackage/cache/wgt/__UNI__3CDE968/static/img/login-weixin.png


BIN
unpackage/cache/wgt/__UNI__3CDE968/static/img/qianbao.png


BIN
unpackage/debug/android_debug.apk


BIN
unpackage/release/apk/__UNI__3CDE968__20211123084516.apk → unpackage/release/apk/__UNI__3CDE968__20211127103054.apk


BIN
unpackage/release/apk/__UNI__3CDE968__20211129164320.apk


+ 1 - 1
utils/newRequest.js

@@ -201,4 +201,4 @@ let service = {
 };
 
 
-export default service
+export default service

+ 17 - 3
utils/request.js

@@ -31,7 +31,21 @@ service.interceptors.response(
 						}
 					})
 				} else {
-					if (res.msg != '系统出现异常') {
+					if (res.msg == '请先绑定手机号或邮箱') {
+						uni.showModal({
+							title: '提示',
+							content: '您未绑定手机号或邮箱,请您先去绑定手机号或邮箱',
+							showCancel: false,
+							success: function(res) {
+								if (res.confirm) {
+									uni.navigateTo({
+										url: '/pages/set/phone'
+									})
+								}
+							}
+						})
+					}
+					if (res.msg != '系统出现异常' && res.msg != '请先绑定手机号或邮箱' ) {
 						uni.showToast({
 							title: res.msg,
 							duration: 1500,
@@ -67,8 +81,8 @@ service.interceptors.request(
 		var timestamp = new Date().getTime();
 		var appSecret = '9034D2526CE4C02CDFFA4CA0CF05D2B5';
 		var Appid = 'LaF961E07F0CC3';
-		var Sign = md5(Appid+appSecret+timestamp+Appid+timestamp+appSecret+appSecret+Appid);
-		
+		var Sign = md5(Appid + appSecret + timestamp + Appid + timestamp + appSecret + appSecret + Appid);
+
 		// console.log(config);
 		if (!config.header) {
 			config.header = {

+ 1 - 1
utils/upApp.js

@@ -133,4 +133,4 @@ export function installApp (path) {
 			plus.nativeUI.alert('安装升级包失败[' + e.code + ']:' + e.message);
 		}
 	);
-}
+}

+ 24 - 7
utils/wxAuthorized.js

@@ -113,6 +113,19 @@ export async function weixindata(config) {
 						});
 						weixinObj.ready((e) => {
 							console.log('注册完毕');
+							console.log('分享数据',shareData);
+							if (shareData == '') {
+								share({}).then(({
+									data
+								}) => {
+									console.log(config,'if 分享数据')
+									shareData = data.data
+									shareLoad(config)
+								});
+							} else {
+								console.log(config,'else 分享数据')
+								shareLoad(config)
+							}
 							store.commit('setWeiChatObj', weixinObj)
 							ok(weixinObj)
 						})
@@ -131,7 +144,7 @@ export async function weixindata(config) {
 	})
 }
 // 加载分享数据
-function shareLoad(config) {
+export function shareLoad(config) {
 	let mess;
 	if (config) {
 		mess = {
@@ -144,13 +157,16 @@ function shareLoad(config) {
 				console.log(e);
 			}
 		}
+		weixinObj.showAllNonBaseMenuItem();
 	} else {
+		console.log('123456789')
 		// console.log(window.location.href, 55)
 		// let url = window.location.href + '?spread=' + store.state.userInfo.uid;
 		let url = window.location.href;
 		url = url.replace(/[\?,&]{0,1}from=singlemessage/g, '');
 		mess = {
-			title: shareData.title,
+			// title: shareData.title,
+			title: '星拼乐欢迎您的加入',
 			link: url, // 分享链接
 			imgUrl: shareData.img, // 分享图标
 			desc: shareData.synopsis,
@@ -163,11 +179,11 @@ function shareLoad(config) {
 	}
 	// 获取仓库数据
 	// 分享好友
-	// weixinObj.updateAppMessageShareData(mess);
-	weixinObj.onMenuShareAppMessage(mess);// 即将废弃
+	weixinObj.updateAppMessageShareData(mess);
+	// weixinObj.onMenuShareAppMessage(mess);// 即将废弃
 	// 分享朋友圈
-	// weixinObj.updateTimelineShareData(mess)
-	weixinObj.onMenuShareTimeline(mess);// 即将废弃
+	weixinObj.updateTimelineShareData(mess)
+	// weixinObj.onMenuShareTimeline(mess);// 即将废弃
 }
 
 // 隐藏功能按钮
@@ -207,5 +223,6 @@ export default {
 	weixinObj,
 	shareData,
 	appId,
-	setRouter
+	setRouter,
+	shareLoad
 }

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