Ver Fonte

2021-8-24

xiemingyang há 3 anos atrás
pai
commit
c564abcc35
100 ficheiros alterados com 1 adições e 19049 exclusões
  1. 0 276
      api/activity.js
  2. 0 66
      api/functionalUnit.js
  3. 0 36
      api/index.js
  4. 0 57
      api/login.js
  5. 0 146
      api/order.js
  6. 0 186
      api/product.js
  7. 0 46
      api/set.js
  8. 0 104
      api/user.js
  9. 0 102
      api/wallet.js
  10. 0 37
      api/wx.js
  11. 1 483
      pages.json
  12. 0 267
      pages/activity/bargain/index.vue
  13. 0 172
      pages/activity/goods_bargain/index.vue
  14. 0 726
      pages/activity/goods_bargain_details/index.vue
  15. 0 430
      pages/cart/cart.vue
  16. 0 216
      pages/category/category.vue
  17. BIN
      pages/index/baodan.png
  18. BIN
      pages/index/beijing1.png
  19. BIN
      pages/index/beijing2.png
  20. BIN
      pages/index/contain.png
  21. BIN
      pages/index/jifen.png
  22. BIN
      pages/index/lunbo.png
  23. 0 177
      pages/index/sign.vue
  24. 0 236
      pages/money/account.vue
  25. 0 370
      pages/money/pay.vue
  26. 0 65
      pages/money/paySuccess.vue
  27. 0 264
      pages/money/recharge.vue
  28. 0 317
      pages/money/wallet.vue
  29. 0 312
      pages/money/withdrawal.vue
  30. 0 165
      pages/order/createOrder.vue
  31. 0 405
      pages/order/evaluate.vue
  32. 0 74
      pages/order/expressInfo.vue
  33. 0 680
      pages/order/order.vue
  34. 0 178
      pages/order/orderDetail.vue
  35. 0 237
      pages/order/orderRefund.vue
  36. 0 204
      pages/product/classify.vue
  37. 0 148
      pages/product/common/KlonContent.vue
  38. 0 68
      pages/product/common/contentText.vue
  39. 0 139
      pages/product/common/discounts.vue
  40. 0 115
      pages/product/common/estimate.vue
  41. 0 85
      pages/product/common/freshDetail.vue
  42. 0 155
      pages/product/common/groupBottom.vue
  43. 0 148
      pages/product/common/groupContent.vue
  44. 0 195
      pages/product/common/groupTime.vue
  45. 0 120
      pages/product/common/guessLike.vue
  46. 0 68
      pages/product/common/klonButtom.vue
  47. 0 169
      pages/product/common/productBottom.vue
  48. 0 146
      pages/product/common/productContent.vue
  49. 0 55
      pages/product/common/topSwiper.vue
  50. 0 386
      pages/product/groupBooking/detail.vue
  51. 0 236
      pages/product/groupBooking/index.vue
  52. 0 75
      pages/product/groupBooking/inviteImg.vue
  53. 0 2094
      pages/product/groupBooking/productCollage.vue
  54. 0 934
      pages/product/groupBooking/productGroup.vue
  55. 0 414
      pages/product/list.vue
  56. 0 612
      pages/product/product.vue
  57. 0 278
      pages/product/reply.vue
  58. 0 452
      pages/product/search.vue
  59. 0 404
      pages/product/seckill.vue
  60. 0 200
      pages/public/forget.vue
  61. 0 386
      pages/public/login.vue
  62. 0 281
      pages/public/register.vue
  63. 0 291
      pages/public/wxLogin.vue
  64. 0 122
      pages/redirect/redirect.vue
  65. 0 208
      pages/set/address.vue
  66. 0 219
      pages/set/addressManage.vue
  67. 0 161
      pages/set/password.vue
  68. 0 161
      pages/set/phone.vue
  69. 0 113
      pages/set/set.vue
  70. 0 93
      pages/set/userinfo.vue
  71. 0 305
      pages/user/award.vue
  72. 0 310
      pages/user/coupon.vue
  73. 0 156
      pages/user/favorites.vue
  74. 0 153
      pages/user/notice.vue
  75. 0 200
      pages/user/scoreAccumulate.vue
  76. 0 283
      pages/user/shareQrCode.vue
  77. 0 556
      pages/user/user.vue
  78. 0 321
      pages/user/withdrawal.vue
  79. BIN
      static/icon/appleIcon.png
  80. BIN
      static/icon/c3.png
  81. BIN
      static/icon/c5.png
  82. BIN
      static/icon/c6.png
  83. BIN
      static/icon/c7.png
  84. BIN
      static/icon/c8.png
  85. BIN
      static/icon/i1.png
  86. BIN
      static/icon/i2.png
  87. BIN
      static/icon/i3.png
  88. BIN
      static/icon/i4.png
  89. BIN
      static/icon/i5.png
  90. BIN
      static/icon/i6.png
  91. BIN
      static/icon/i7.png
  92. BIN
      static/icon/i8.png
  93. BIN
      static/icon/img01.png
  94. BIN
      static/icon/img02.png
  95. BIN
      static/icon/img03.png
  96. BIN
      static/icon/img04.png
  97. BIN
      static/icon/img05.png
  98. BIN
      static/icon/img06.png
  99. BIN
      static/icon/img07.png
  100. BIN
      static/icon/img08.png

+ 0 - 276
api/activity.js

@@ -1,276 +0,0 @@
-import request from "@/utils/request.js";
-/**
- * 
- * 所有活动接口 包括:拼团,砍价,秒杀
- * 
-*/
-// 砍价产品详情
-export function getBargainDetail(data,id) {
-	return request({
-		url: '/api/bargain/detail/' + id,
-		method: 'get',
-		data
-	});
-}
-
-/**
- * 砍价产品详情
- */
-// export function getBargainDetail(id) {
-//   return request.get("bargain/detail/" + id);
-// }
-
-//砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格
-export function postBargainHelpCount(data) {
-	return request({
-		url: '/api/bargain/help/count',
-		method: 'post',
-		data
-	});
-}
-
-/**
- * 砍价 砍价帮总人数、剩余金额、进度条、已经砍掉的价格
- */
-// export function postBargainHelpCount(data) {
-//   return request.post("bargain/help/count", data);
-// }
-
-//砍价 开启砍价用户信息
-export function postBargainStartUser(data) {
-	return request({
-		url: '/api/bargain/start/user',
-		method: 'post',
-		data
-	});
-}
-
-/**
- * 砍价 开启砍价用户信息
- */
-// export function postBargainStartUser(data) {
-//   return request.post("bargain/start/user", data);
-// }
-
-//砍价开启
-export function postBargainStart(data) {
-	return request({
-		url: '/api/bargain/start',
-		method: 'post',
-		data
-	});
-}
-
-/**
- * 砍价开启
- */
-// export function postBargainStart(bargainId) {
-//   return request.post("bargain/start", { bargainId: bargainId});
-// }
-
-// 砍价 砍掉金额
-export function postBargainHelpPrice(data) {
-	return request({
-		url: '/api/bargain/help/price',
-		method: 'post',
-		data
-	});
-}
-
-/**
- * 砍价 砍掉金额
- */
-// export function postBargainHelpPrice(data) {
-//   return request.post("bargain/help/price", data);
-// }
-
-// 砍价 帮助好友砍价
-export function postBargainHelp(data) {
-	return request({
-		url: '/api/bargain/help',
-		method: 'post',
-		data
-	});
-}
-
-/**
- * 砍价 帮助好友砍价
- */
-// export function postBargainHelp(data) {
-//   return request.post("bargain/help", data);
-// }
-
-// 砍价 砍价帮
-export function postBargainHelpList(data) {
-	return request({
-		url: '/api/bargain/help/list',
-		method: 'post',
-		data
-	});
-}
-
-
-/**
- * 砍价 砍价帮
- */
-// export function postBargainHelpList(data) {
-//   return request.post("bargain/help/list", data);
-// }
-
-// 砍价 观看/分享/参与次数
-export function postBargainShare(data) {
-	return request({
-		url: '/api/bargain/share',
-		method: 'post',
-		data
-	});
-}
-
-/**
- * 砍价 观看/分享/参与次数
- */
-// export function postBargainShare(bargainId) {
-//   return request.post("bargain/share", { bargainId: bargainId});
-// }
-
-// 砍价列表(已参与)
-export function getBargainUserList(data) {
-	return request({
-		url: '/api/bargain/user/list',
-		method: 'get',
-		data
-	});
-}
-
-/**
- * 
- * 砍价列表(已参与)
- * @param object data
-*/
-// export function getBargainUserList(data){
-//   return request.get('bargain/user/list',data);
-// }
-
-// 砍价取消
-export function getBargainUserCancel(data) {
-	return request({
-		url: '/api/bargain/user/cancel',
-		method: 'post',
-		data
-	});
-}
-
-/**
- * 砍价取消
- */
-// export function getBargainUserCancel(data) {
-//   return request.post("/bargain/user/cancel", data);
-// }
-
-
-
-
-
-/**
- * 拼团列表
- * 
-*/
-export function getCombinationList(data) {
-  return request.get('combination/list', data,{noAuth:true});
-}
-
-/**
- * 拼团详情
- * 
-*/
-export function getCombinationDetail(id) {
-  return request.get('combination/detail/'+id);
-}
-
-/**
- * 拼团 开团
- */
-export function getCombinationPink(id) {
-  return request.get("combination/pink/" + id);
-}
-
-/**
- * 拼团 取消开团
- */
-export function postCombinationRemove(data) {
-  return request.post("combination/remove",data);
-}
-
-/**
- * 砍价列表
- */
-export function getBargainList(data) {
-  return request.get("bargain/list", data,{noAuth:true});
-}
-
-
-/**
- * 
- * 取消砍价
- * @param int bargainId
-*/
-export function bargainUserCancel(bargainId){
-  return request.post('bargain/user/cancel', { bargainId: bargainId})
-}
-
-/**
- * 秒杀产品时间区间
- * 
-*/
-export function getSeckillIndexTime(){
-  return request.get('seckill/index',{},{noAuth:true});
-}
-
-/**
- * 秒杀产品列表
- * @param int time
- * @param object data
-*/
-export function getSeckillList(time,data){
-  return request.get('seckill/list/'+time,data,{noAuth:true});
-}
-
-/**
- * 秒杀产品详情
- * @param int id
-*/
-export function getSeckillDetail(id){
-  return request.get('seckill/detail/'+id);
-}
-
-/**
- * 砍价海报
- * @param object data
- * 
-*/
-export function getBargainPoster(data){
-  return request.post('bargain/poster',data)
-}
-
-/**
- * 拼团海报
- * @param object data
- * 
-*/
-export function getCombinationPoster(data){
-  return request.post('combination/poster',data)
-}
-
-/**
- * 获取秒杀小程序二维码
- */
-export function seckillCode(id,data) {
-  return request.get("seckill/code/"+id,data);
-}
-
-/**
- * 获取拼团小程序二维码
- */
-export function scombinationCode(id) {
-  return request.get("combination/code/"+id);
-}

+ 0 - 66
api/functionalUnit.js

@@ -1,66 +0,0 @@
-import request from '@/utils/request'
-
-//获取优惠券列表
-export function getCouponsList(data,types) {
-	//优惠券状态 0全部 1未使用 2已使用
-	return request({
-		url: '/api/coupons/user/'+types,
-		method: 'get',
-		data
-	});
-}
-
-//领取优惠券
-export function setCoupons(data) {
-	return request({
-		url: '/api/coupon/receive',
-		method: 'post',
-		data
-	});
-}
-
-//获取可使用优惠券
-export function couponsOrder(data,price) {
-	return request({
-		url: '/api/coupons/order/'+price,
-		method: 'get',
-		data
-	});
-}
-
-
-//	积分列表
-export function integrallist(data) {
-	return request({
-		url: '/api/integral/list',
-		method: 'get',
-		data
-	});
-}
-
-
-// 获取签到列表
-export function signList(data) {
-	return request({
-		url: '/api/sign/list',
-		method: 'get',
-		data
-	});
-}
-// 点击签到
-export function integral(data) {
-	return request({
-		url: '/api/sign/integral',
-		method: 'post',
-		data
-	});
-}
-
-// 签到信息
-export function signUser(data) {
-	return request({
-		url: '/api/sign/user',
-		method: 'post',
-		data
-	});
-}

+ 0 - 36
api/index.js

@@ -1,36 +0,0 @@
-import request from '@/utils/request'
-
-// 促销商品
-export function groom4(data) {
-	return request({
-		url: '/api/groom/list/4',
-		method: 'get',
-		data
-	});
-}
-// 精品推荐
-export function groom1(data) {
-	return request({
-		url: '/api/groom/list/1',
-		method: 'get',
-		data
-	});
-}
-// 新品首发
-export function groom3(data) {
-	return request({
-		url: '/api/groom/list/3',
-		method: 'get',
-		data
-	});
-}
-
-// 获取首页信息
-export function loadIndexs(data) {
-	return request({
-		url: '/api/index',
-		method: 'get',
-		data
-	});
-}
-

+ 0 - 57
api/login.js

@@ -1,57 +0,0 @@
-import request from '@/utils/request'
-
-// 登录
-export function login(data) {
-	return request({
-		url: '/api/login',
-		method: 'post',
-		data
-	});
-}
-// 注册
-export function register(data) {
-	return request({
-		url: '/api/register',
-		method: 'post',
-		data
-	});
-}
-// 验证码
-export function verify(data) {
-	// type=register为注册
-	// type=login为登录
-	return request({
-		url: '/api/register/verify',
-		method: 'post',
-		data
-	});
-}
-
-// 获取用户信息
-export function getUserInfo(data) {
-	return request({
-		url: '/api/userinfo',
-		method: 'get',
-		data
-	});
-}
-
-// 短信登录
-export function loginMobile(data) {
-	return request({
-		url: '/api/login/mobile',
-		method: 'post',
-		data
-	});
-}
-// #ifdef APP-PLUS
-// 微信授权登录
-export function loginWx(data) {
-	return request({
-		url: '/api/wechat/appauth',
-		method: 'get',
-		data
-	});
-}
-// #endif
-

+ 0 - 146
api/order.js

@@ -1,146 +0,0 @@
-import request from '@/utils/request'
-import {upFilse} from '@/utils/request'
-// 订单确认
-export function confirm(data) {
-	return request({
-		url: '/api/order/confirm',
-		method: 'post',
-		data
-	});
-}
-//获取可使用优惠券
-export function couponsOrder(data,price) {
-	return request({
-		url: '/api/coupons/order/'+price,
-		method: 'get',
-		data
-	});
-}
-//获取优惠券列表
-export function getCouponsList(data,types) {
-	//优惠券状态 0全部 1未使用 2已使用
-	return request({
-		url: '/api/coupons/user/'+types,
-		method: 'get',
-		data
-	});
-}
-//提交评论
-export function order_comment(data) {
-	return request({
-		url: '/api/order/comment',
-		method: 'post',
-		data
-	});
-}
-//订单产品信息
-export function product(data) {
-	return request({
-		url: '/api/order/product',
-		method: 'post',
-		data
-	});
-}
-// 快递查询
-export function express_query(data) {
-	return request({
-		url: '/api/order/express_query',
-		method: 'get',
-		data
-	});
-}
-//上传图片
-export function upload(data) {
-	return upFilse({
-		url: '/api/upload/image',
-		method: 'post',
-		data
-	});
-}
-// 订单列表
-export function orderList(data) {
-	return request({
-		url: '/api/order/list',
-		method: 'get',
-		data
-	});
-}
-// 订单详细
-export function orderDetail(data,orderid) {
-	return request({
-		url: '/api/order/detail/'+orderid,
-		method: 'get',
-		data
-	});
-}
-
-// 取消订单
-export function orderCancel(data) {
-	return request({
-		url: '/api/order/cancel',
-		method: 'post',
-		data
-	});
-}
-
-// 删除订单
-export function orderDel(data) {
-	return request({
-		url: '/api/order/del',
-		method: 'get',
-		data
-	});
-}
-// 申请退款
-export function refund(data) {
-	return request({
-		url: '/api/order/refund/verify',
-		method: 'post',
-		data
-	});
-}
-// 退款理由列表
-export function refundReason(data) {
-	return request({
-		url: '/api/order/refund/reason',
-		method: 'get',
-		data
-	});
-}
-
-// 确认收货
-export function orderTake(data) {
-	return request({
-		url: '/api/order/take',
-		method: 'post',
-		data
-	});
-}
-
-// 订单支付
-export function orderPay(data) {
-	return request({
-		url: '/api/order/pay',
-		method: 'post',
-		data
-	});
-}
-
-// 创建订单
-export function createOrderkey(data,key) {
-	return request({
-		url: '/api/order/create/'+key,
-		method: 'post',
-		data
-	});
-}
-
-// 统计订单金额
-export function computedOrderkey(data) {
-	return request({
-		url: '/api/order/computed/'+data.orderkey,
-		method: 'post',
-		data
-	});
-}
-

+ 0 - 186
api/product.js

@@ -1,186 +0,0 @@
-import request from '@/utils/request'
-
-// 获取商品列表
-export function getProducts(data) {
-	// 	{
-	// 参数名称	是否必须	示例	备注
-	// sid			否			二级分类编号
-	// cid			否			一级分类编号(!)
-	// keyword		否			搜索
-	// priceOrder	否			价格排序
-	// salesOrder	否			销量排序
-	// news			否			是否新品
-	// page			否			分页参数起始值
-	// limit		否			分页数步长值
-	// }
-	return request({
-		url: '/api/products',
-		method: 'get',
-		data
-	});
-}
-// 获取商品详情
-export function goodsDetail(data, id) {
-	return request({
-		url: '/api/product/detail/' + id,
-		method: 'get',
-		data
-	});
-}
-
-// 砍价列表
-export function getBargainList(data) {
-	return request({
-		url: '/api/bargain/list',
-		method: 'get',
-		data
-	});
-}
-// 加入购物车
-export function cartAdd(data) {
-	return request({
-		url: '/api/cart/add',
-		method: 'post',
-		data
-	});
-}
-
-// 收藏商品
-export function collectAdd(data) {
-	return request({
-		url: '/api/collect/add',
-		method: 'post',
-		data
-	});
-}
-
-// 取消收藏商品
-export function collectDel(data) {
-	return request({
-		url: '/api/collect/del',
-		method: 'post',
-		data
-	});
-}
-
-// 获取搜搜关键字
-export function searchKeyword(data) {
-	return request({
-		url: '/api/search/keyword',
-		method: 'get',
-		data
-	});
-}
-
-// 获取热门分类信息
-export function groomList(data,type) {
-	// 获取产品类型 1 精品推荐 2 热门榜单 3首发新品 4促销单品
-	return request({
-		url: '/api/groom/list/'+type,
-		method: 'get',
-		data
-	});
-}
-
-
-// 获取秒杀商品详细
-export function seckillGoods(data,id) {
-	return request({
-		url: '/api/seckill/detail/'+id,
-		method: 'get',
-		data
-	});
-}
-
-// 获取拼团商品详细
-export function groupGoods(data,id) {
-	return request({
-		url: '/api/combination/detail/'+id,
-		method: 'get',
-		data
-	});
-}
-
-
-// 获取商品分类
-export function getCategoryList(data) {
-	return request({
-		url: '/api/category',
-		method: 'get',
-		data
-	});
-}
-
-
-// 获取拼团列表
-export function getCombinationList(data) {
-	return request({
-		url: '/api/combination/list',
-		method: 'get',
-		data
-	});
-}
-
-//取消拼团
-export function getCombinationLisRemove(data,id) {
-	return request({
-		url: '/api/combination/remove'+id,
-		method: 'get',
-		data
-	});
-}
-
-//拼团开团页面数据
-export function getCombinationLisPink(data,id) {
-	return request({
-		url: '/api/combination/pink/'+id,
-		method: 'get',
-		data
-	});
-}
-
-// 获取拼团海报
-export function getCombinationPoster(data) {
-	return request({
-		url: '/api/combination/poster',
-		method: 'post',
-		data
-	});
-}
-
-
-// 获取秒杀分类
-export function getSeckillClass(data) {
-	return request({
-		url: '/api/seckill/index',
-		method: 'get',
-		data
-	});
-}
-// 获取秒杀列表
-export function getSeckillList(data,id) {
-	return request({
-		url: '/api/seckill/list/'+id,
-		method: 'get',
-		data
-	});
-}
-
-
-// 产品评价数量和好评度
-export function reply_config(data,id) {
-	return request({
-		url: '/api/reply/config/'+id,
-		method: 'get',
-		data
-	});
-}
-// 获取产品评论
-export function reply_list(data,id) {
-	return request({
-		url: '/api/reply/list/'+id,
-		method: 'get',
-		data
-	});
-}
-

+ 0 - 46
api/set.js

@@ -1,46 +0,0 @@
-import request from '@/utils/request'
-
-// 修改用户信息
-export function userEdit(data) {
-	return request({
-		url: '/api/user/edit',
-		method: 'post',
-		data
-	});
-}
-
-//退出登录
-export function logout(data) {
-	return request({
-		url: '/api/logout',
-		method: 'get',
-		data
-	});
-}
-//修改密码
-export function registerReset(data) {
-	return request({
-		url: '/api/register/reset',
-		method: 'post',
-		data
-	});
-}
-
-//绑定手机
-export function binding(data) {
-	return request({
-		url: '/api/binding',
-		method: 'post',
-		data
-	});
-}
-// #ifdef APP-PLUS
-//苹果生成账户
-export function applelogin(data) {
-	return request({
-		url: '/api/applelogin',
-		method: 'post',
-		data
-	});
-}
-// #endif

+ 0 - 104
api/user.js

@@ -1,104 +0,0 @@
-import request from '@/utils/request'
-
-// 订单统计信息
-export function orderData(data) {
-	return request({
-		url: '/api/order/data',
-		method: 'get',
-		data
-	});
-}
-
-// 获取用户信息
-export function getUserInfo(data) {
-	return request({
-		url: '/api/userinfo',
-		method: 'get',
-		data
-	});
-}
-
-// 用户分享图
-export function spreadBanner(data) {
-	return request({
-		url: '/api/spread/banner',
-		method: 'get',
-		data
-	});
-}
-
-// 获取地址列表
-export function getAddressList(data) {
-	return request({
-		url: '/api/address/list',
-		method: 'get',
-		data
-	});
-}
-// 修改地址
-export function addressEdit(data) {
-	return request({
-		url: '/api/address/edit',
-		method: 'post',
-		data
-	});
-}
-// 删除地址
-export function addressDel(data) {
-	return request({
-		url: '/api/address/del',
-		method: 'post',
-		data
-	});
-}
-// 设为默认地址
-export function setAddressDefault(data) {
-	return request({
-		url: '/api/address/default/set',
-		method: 'post',
-		data
-	});
-}
-// 购物车列表
-export function getCartList(data) {
-	return request({
-		url: '/api/cart/list',
-		method: 'get',
-		data
-	});
-}
-
-// 修改购物车数量
-export function getCartNum(data) {
-	return request({
-		url: '/api/cart/num',
-		method: 'post',
-		data
-	});
-}
-//删除购物车
-export function cartDel(data) {
-	return request({
-		url: '/api/cart/del',
-		method: 'post',
-		data
-	});
-}
-//获取收藏夹列表
-export function getcollectList(data) {
-	return request({
-		url: '/api/collect/user',
-		method: 'get',
-		data
-	});
-}
-// 取消收藏
-export function delcollect(data) {
-	return request({
-		url: '/api/collect/del',
-		method: 'post',
-		data
-	});
-}
-
-

+ 0 - 102
api/wallet.js

@@ -1,102 +0,0 @@
-import request from '@/utils/request'
-
-// 获取用户消费记录
-export function spreadCommission(data,state) {
-	return request({
-		url: '/api/spread/commission/'+state,
-		method: 'get',
-		data
-	});
-}
-
-// 获取账户余额
-export function userBalance(data) {
-	return request({
-		url: '/api/user/balance',
-		method: 'get',
-		data
-	});
-}
-
-// 提现
-export function extractCash(data) {
-	return request({
-		url: '/api/extract/cash',
-		method: 'post',
-		data
-	});
-}
-
-// 提现信息
-export function extractBank(data) {
-	return request({
-		url: '/api/extract/bank',
-		method: 'get',
-		data
-	});
-}
-// #ifdef H5
-// 公众号充值
-export function rechargeWechat(data) {
-	return request({
-		url: '/api/recharge/wechat',
-		method: 'post',
-		data
-	});
-}
-// #endif
-// #ifdef MP
-// 小程序充值
-export function rechargeRoutine(data) {
-	return request({
-		url: '/api/recharge/routine',
-		method: 'post',
-		data
-	});
-}
-// #endif
-// 获取提现支付宝账号
-export function aliInfo(data) {
-	return request({
-		url: '/api/ali/info',
-		method: 'get',
-		data
-	});
-}
-//获取默认银行卡账号
-export function bankInfo(data) {
-	return request({
-		url: '/api/bank/info',
-		method: 'get',
-		data
-	});
-}
-// 保存提现支付宝账号
-export function setAliInfo(data) {
-	return request({
-		url: '/api/ali/edit',
-		method: 'post',
-		data
-	});
-}
-//保存默认银行卡账号
-export function setBankInfo(data) {
-	return request({
-		url: '/api/bank/edit',
-		method: 'post',
-		data
-	});
-}
-
-
-// 账户余额
-export function balance(data) {
-	return request({
-		url: '/api/user/balance',
-		method: 'get',
-		data
-	});
-}
-
-
-

+ 0 - 37
api/wx.js

@@ -1,37 +0,0 @@
-import request from '@/utils/request'
-// #ifdef H5
-// 微信分享信息
-export function share(data) {
-	return request({
-		url: '/api/share',
-		method: 'get',
-		data
-	});
-}
-//微信配置
-export function wechatConfig(data) {
-	return request({
-		url: '/api/wechat/config',
-		method: 'get',
-		data
-	});
-}
-// 微信code地址
-export function wechatAuth(data) {
-	return request({
-		url: '/api/wechat/auth',
-		method: 'get',
-		data
-	});
-}
-// #endif
-// #ifdef MP-WEIXIN
-// 微信code地址
-export function wechatMpAuth(data) {
-	return request({
-		url: '/api/wechat/mp_auth',
-		method: 'post',
-		data
-	});
-}
-// #endif

+ 1 - 483
pages.json

@@ -1,489 +1,7 @@
 {
-	"pages": [{
-			"path": "pages/index/index",
-			"style": {
-				"enablePullDownRefresh": true,
-				// #ifdef MP
-				"navigationStyle": "custom",
-				// #endif
-				// #ifndef MP
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent",
-						"searchInput": {
-							"borderRadius": "16px",
-							"placeholder": "搜索关键字",
-							"disabled": true,
-							"placeholderColor": "#C4C4C4",
-							"backgroundColor": "#fff"
-						}
-					}
-				},
-				// #endif
-				"navigationBarTitleText": "商城首页"
-			}
-		},
-		{
-			"path": "pages/index/sign",
-			"style": {
-				"navigationBarTitleText": "每日签到",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},{
-			"path": "pages/public/register",
-			"style": {
-				"navigationBarTitleText": "注册",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		}, {
-			"path": "pages/public/login",
-			"style": {
-				"navigationBarTitleText": "登录",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/public/wxLogin",
-			"style": {
-				"navigationBarTitleText": "微信登录",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/public/forget",
-			"style": {
-				"navigationBarTitleText": "忘记密码",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/index",
-			"style": {
-				"enablePullDownRefresh": true,
-				"navigationBarTitleText": "超值拼团"
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/detail",
-			"style": {
-				"navigationBarTitleText": "拼团列表",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/productCollage",//拼团商品
-			"style": {
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				},
-				"navigationBarTitleText":"商品详情"
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/inviteImg",
-			"style": {
-				"navigationBarTitleText": "拼团邀请图",
-				"app-plus": {
-					"titleNView": false
-				}
-			}
-		},
-		{
-			"path": "pages/product/groupBooking/productGroup",
-			"style": {
-				"navigationBarTitleText": "拼团详情展示",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		// {
-		// 	"path": "pages/product/groupBooking/groupdetails",
-		// 	"style": {
-		// 		"navigationBarTitleText": "拼团详情",
-		// 		"app-plus": {
-		// 			"titleNView": false
-		// 		}
-		// 	}
-		// },
-		{
-			"path": "pages/product/reply",
-			"style": {
-				"navigationBarTitleText": "商品评价",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/product/product",
-			"style": {
-				"navigationBarTitleText": "详情展示",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/product/seckill",
-			"style": {
-				"navigationBarTitleText": "限时秒杀"
-			}
-		},
-		{
-			"path": "pages/product/list",
-			"style": {
-				"enablePullDownRefresh": true,
-				"navigationBarTitleText": "商品列表"
-			}
-		},
-		{
-			"path": "pages/product/search",
-			"style": {
-				"enablePullDownRefresh": true,
-				// #ifdef APP-PLUS
-				"navigationStyle": "custom",
-				// #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/product/classify",
-			"style": {
-				"navigationStyle": "custom",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/set/set",
-			"style": {
-				"navigationBarTitleText": "设置"
-			}
-		},
-		{
-			"path": "pages/set/address",
-			"style": {
-				"navigationBarTitleText": "收货地址"
-			}
-		},
-		{
-			"path": "pages/set/addressManage",
-			"style": {
-				"navigationBarTitleText": ""
-			}
-		},
-		{
-			"path": "pages/set/phone",
-			"style": {
-				"navigationBarTitleText": "实名认证"
-			}
-		},
-		{
-			"path": "pages/set/password",
-			"style": {
-				"navigationBarTitleText": "修改密码"
-			}
-		},
-		{
-			"path": "pages/set/userinfo",
-			"style": {
-				"navigationBarTitleText": "修改资料"
-			}
-		}, {
-			"path": "pages/cart/cart",
-			"style": {
-				"navigationBarTitleText": "购物车"
-			}
-		},
+	"pages": [
 		
-		{
-			"path": "pages/user/user",
-			"style": {
-				// #ifndef MP-WEIXIN
-				"navigationStyle": "custom",
-				// "app-plus": {
-				// 	"bounce": "none",
-				// 	"titleNView": {
-				// 		"type": "transparent",
-				// 		"buttons": [{
-				// 				"fontSrc": "/static/yticon.ttf",
-				// 				"text": "\ue60f",
-				// 				"fontSize": "24",
-				// 				"color": "#303133",
-				// 				"width": "46px",
-				// 				"background": "rgba(0,0,0,0)"
-				// 			},
-				// 			{
-				// 				"fontSrc": "/static/yticon.ttf",
-				// 				"text": "\ue744",
-				// 				"fontSize": "28",
-				// 				"color": "#303133",
-				// 				"background": "rgba(0,0,0,0)",
-				// 				"redDot": true
-				// 			}
-				// 		]
-				// 	}
-				// },
-				// #endif
-				"navigationBarTitleText": "个人中心"
-			}
-		},
-		{
-			"path": "pages/user/award",
-			"style": {
-				"navigationBarTitleText": "奖励明细",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/user/withdrawal",
-			"style": {
-				"navigationBarTitleText": "奖励提现"
-			}
-		},
-		{
-			"path": "pages/user/notice",
-			"style": {
-				"navigationBarTitleText": "通知"
-			}
-		},
-		{
-			"path": "pages/user/favorites",
-			"style": {
-				"navigationBarTitleText": "收藏夹"
-			}
-		}, {
-			"path": "pages/user/coupon",
-			"style": {
-				"navigationBarTitleText": "我的卡卷"
-			}
-		},
-		{
-			"path": "pages/user/scoreAccumulate",
-			"style": {
-				"navigationBarTitleText": "积分明细"
-			}
-		},
-		{
-			"path": "pages/order/order",
-			"style": {
-				"navigationBarTitleText": "我的订单",
-				"app-plus": {
-					"bounce": "none"
-				}
-			}
-		},
-		{
-			"path": "pages/order/expressInfo",
-			"style": {
-				"navigationBarTitleText": "快递详情"
-			}
-		},
-		{
-			"path": "pages/order/orderDetail",
-			"style": {
-				"navigationBarTitleText": "订单详情",
-				"app-plus": {
-					"bounce": "none"
-				}
-			}
-		},
-		{
-			"path": "pages/order/evaluate",
-			"style": {
-				"navigationBarTitleText": "评论"
-			}
-		},
-		{
-			"path": "pages/order/orderRefund",
-			"style": {
-				"navigationBarTitleText": "申请退款"
-			}
-		},
-		{
-			"path": "pages/order/createOrder",
-			"style": {
-				"navigationBarTitleText": "创建订单"
-			}
-		},  {
-			"path": "pages/money/pay",
-			"style": {
-				"navigationBarTitleText": "支付"
-			}
-		},
-		{
-			"path": "pages/money/paySuccess",
-			"style": {
-				"navigationBarTitleText": "支付成功"
-			}
-		},
-		{
-			"path": "pages/money/wallet",
-			"style": {
-				"navigationBarTitleText": "我的钱包",
-				"app-plus": {
-					"titleNView": {
-						"type": "transparent"
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/money/account",
-			"style": {
-				"navigationBarTitleText": "提现账号"
-			}
-		},
-		{
-			"path": "pages/money/withdrawal",
-			"style": {
-				"navigationBarTitleText": "提现"
-			}
-		},
-		{
-			"path": "pages/money/recharge",
-			"style": {
-				"navigationBarTitleText": "充值"
-			}
-		},
-		{
-			"path": "pages/category/category",
-			"style": {
-				// #ifdef APP-PLUS
-				"navigationStyle": "custom",
-				// #endif
-				// #ifndef MP
-				"app-plus": {
-					"bounce": "none",
-					"titleNView": {
-						"searchInput": {
-							"backgroundColor": "rgba(231, 231, 231,.7)",
-							"borderRadius": "16px",
-							"placeholder": "商品搜索",
-							"disabled": true,
-							"placeholderColor": "#606266",
-							"align": "left"
-						}
-					}
-				},
-				// #endif
-				"navigationBarTitleText": "分类"
-			}
-		},
-		{
-			"path": "pages/redirect/redirect",
-			"style": {
-				"navigationBarTitleText": "微信登录跳转页面",
-				"app-plus": {
-					"titleNView": false
-				}
-			}
-		},
-		{
-			"path": "pages/user/shareQrCode",
-			"style": {
-				"navigationBarTitleText": "邀请好友"
-			}
-		}
-	],
-	"subPackages": [
-		{
-			"root": "pages/activity",
-			"name": "activity",
-			"pages":[{
-					"path": "goods_bargain/index",
-					"style": {
-						"navigationStyle": "custom"
-						// #ifdef MP
-						,"navigationBarTextStyle": "#fff"
-						// #endif
-					}
-				},
-				{
-					"path": "goods_bargain_details/index",
-					"style": {
-						"navigationStyle": "custom"
-						// #ifdef MP
-						,"navigationBarTextStyle": "#fff"
-						// #endif
-					}
-				},
-				{
-					"path": "bargain/index",
-					"style": {
-						"navigationBarTitleText": "砍价记录"
-					}
-				}
-			]
-		}
 	],
-	"globalStyle": {
-		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "uni-app",
-		"navigationBarBackgroundColor": "#FFFFFF",
-		"backgroundColor": "#f8f8f8"
-	},
 	"tabBar": {
 		"color": "#C0C4CC",
 		"selectedColor": "#5DBC7C",

+ 0 - 267
pages/activity/bargain/index.vue

@@ -1,267 +0,0 @@
-<template>
-	<view>
-		<block v-if="bargain.length>0">
-			<div class="bargain-record" ref="container">
-				<div class="item" v-for="(item, index) in bargain" :key="index">
-					<div class="picTxt acea-row row-between-wrapper">
-						<div class="pictrue">
-							<image :src="item.image" />
-						</div>
-						<div class="text acea-row row-column-around">
-							<div class="line1" style="width: 100%;">{{ item.title }}</div>
-							<count-down :justify-left="'justify-content:left'" :is-day="true" :tip-text="'倒计时 '" :day-text="' 天 '" :hour-text="' 时 '" :minute-text="' 分 '"
-							 :second-text="' 秒'" :datatime="item.datatime" v-if="item.status === 1"></count-down>
-							<div class="successTxt font-color-red" v-else-if="item.status === 3">砍价成功</div>
-							<div class="endTxt" v-else>活动已结束</div>
-							<div class="money font-color-red">
-								已砍至<span class="symbol">¥</span><span class="num">{{ item.residue_price }}</span>
-							</div>
-						</div>
-					</div>
-					<div class="bottom acea-row row-between-wrapper">
-						<div class="purple" v-if="item.status === 1">活动进行中</div>
-						<div class="success" v-else-if="item.status === 3">砍价成功</div>
-						<div class="end" v-else>活动已结束</div>
-						<div class="acea-row row-middle row-right">
-							<div class="bnt cancel" v-if="item.status === 1" @click="getBargainUserCancel(item.bargain_id)">
-								取消活动
-							</div>
-							<div class="bnt bg-color-red" v-if="item.status === 1" @click="goDetail(item.bargain_id)">
-								继续砍价
-							</div>
-							<!-- <div class="bnt bg-color-red" v-else @click="goList">重开一个</div> -->
-						</div>
-					</div>
-				</div>
-				<Loading :loaded="status" :loading="loadingList"></Loading>
-			</div>
-		</block>
-		<block v-if="bargain.length == 0">
-			<emptyPage title="暂无砍价记录~"></emptyPage>
-		</block>
-	</view>
-</template>
-<script>
-	import CountDown from "@/components/countDown";
-	import emptyPage from '@/components/emptyPage.vue'
-	import {
-		getBargainUserList,
-		getBargainUserCancel
-	} from "@/api/activity";
-	import {
-		userinfos
-	} from '@/api/user.js';
-	import Loading from "@/components/Loading";
-
-	export default {
-		name: "BargainRecord",
-		components: {
-			CountDown,
-			Loading,
-			emptyPage
-		},
-		props: {},
-		data: function() {
-			return {
-				bargain: [],
-				status: false, //砍价列表是否获取完成 false 未完成 true 完成
-				loadingList: false, //当前接口是否请求完成 false 完成 true 未完成
-				page: 1, //页码
-				limit: 20, //数量
-				userInfo: {}
-			};
-		},
-		onLoad: function() {
-			this.getBargainUserList();
-			this.getUserInfo();
-			// this.$scroll(this.$refs.container, () => {
-			//   !this.loadingList && this.getBargainUserList();
-			// });
-		},
-		methods: {
-			goDetail: function(id) {
-				// this.$router.push({
-				// 	path: "/activity/dargain_detail/" + id +'&bargain='+ userInfo.uid
-				// });
-				uni.navigateTo({
-					url: `/pages/activity/goods_bargain_details/index?id=${id}&bargain=${this.userInfo.uid}`
-				})
-			},
-			// 砍价列表
-			goList: function() {
-				uni.navigateTo({
-					url: '/pages/activity/goods_bargain/index'
-				})
-			},
-			getBargainUserList: function() {
-				var that = this;
-				if (that.loadingList) return;
-				if (that.status) return;
-				getBargainUserList({
-						page: that.page,
-						limit: that.limit
-					})
-					.then(res => {
-						that.status = res.data.length < that.limit;
-						that.bargain.push.apply(that.bargain, res.data);
-						that.page++;
-						that.loadingList = false;
-					})
-					.catch(res => {
-						that.$dialog.error(res.msg);
-					});
-			},
-			getBargainUserCancel: function(bargainId) {
-				var that = this;
-				uni.showModal({
-				    title: '提示',
-				    content: '确定取消砍价商品吗',
-				    success: function (res) {
-				        if (res.confirm) {
-				            console.log('用户点击确定');
-							getBargainUserCancel({
-									bargainId: bargainId
-								})
-								.then(res => {
-									that.status = false;
-									that.loadingList = false;
-									that.page = 1;
-									that.bargain = [];
-									that.getBargainUserList();
-									uni.showToast({
-										title:res.msg
-									});
-								})
-								.catch(res => {
-									uni.showToast({
-										title:res
-									});
-								});
-				        } else if (res.cancel) {
-				            console.log('用户点击取消');
-				        }
-				    }
-				});
-			},
-			/**
-			 * 获取个人用户信息
-			 */
-			getUserInfo: function() {
-				let that = this;
-				userinfos().then(res => {
-					that.userInfo = res.data;
-				});
-			},
-		},
-		onReachBottom() {
-			this.getBargainUserList();
-		}
-	};
-</script>
-
-<style lang="scss">
-	page{
-		background-color: #f5f5f5;
-	}
-	/*砍价记录*/
-	.bargain-record .item .picTxt .text .time .styleAll {
-		color: #fc4141;
-		font-size:24rpx;
-	}
-	.bargain-record .item .picTxt .text .time .red {
-		color: #999;
-		font-size:24rpx;
-	}
-	.bargain-record .item {
-		background-color: #fff;
-		margin-bottom: 12upx;
-	}
-
-	.bargain-record .item .picTxt {
-		height: 210upx;
-		border-bottom: 1px solid #f0f0f0;
-		padding: 0 30upx;
-	}
-
-	.bargain-record .item .picTxt .pictrue {
-		width: 150upx;
-		height: 150upx;
-	}
-
-	.bargain-record .item .picTxt .pictrue image {
-		width: 100%;
-		height: 100%;
-		border-radius: 6upx;
-	}
-
-	.bargain-record .item .picTxt .text {
-		width: 515upx;
-		font-size: 30upx;
-		color: #282828;
-		height: 150upx;
-	}
-
-	.bargain-record .item .picTxt .text .time {
-		font-size: 24upx;
-		color: #868686;
-		justify-content: left !important;
-	}
-	
-	.bargain-record .item .picTxt .text .successTxt{
-		font-size:24rpx;
-	}
-	
-	.bargain-record .item .picTxt .text .endTxt{
-		font-size:24rpx;
-		color: #999;
-	}
-	.bargain-record .item .picTxt .text .money {
-		font-size: 24upx;
-	}
-
-	.bargain-record .item .picTxt .text .money .num {
-		font-size: 32upx;
-		font-weight: bold;
-	}
-
-	.bargain-record .item .picTxt .text .money .symbol {
-		font-weight: bold;
-	}
-
-	.bargain-record .item .bottom {
-		height: 100upx;
-		padding: 0 30upx;
-		font-size: 27upx;
-	}
-
-	.bargain-record .item .bottom .purple {
-		color: #f78513;
-	}
-
-	.bargain-record .item .bottom .end {
-		color: #999;
-	}
-
-	.bargain-record .item .bottom .success {
-		color: #e93323;
-	}
-
-	.bargain-record .item .bottom .bnt {
-		font-size: 27upx;
-		color: #fff;
-		width: 176upx;
-		height: 60upx;
-		border-radius: 32upx;
-		text-align: center;
-		line-height: 60upx;
-	}
-
-	.bargain-record .item .bottom .bnt.cancel {
-		color: #aaa;
-		border: 1px solid #ddd;
-	}
-
-	.bargain-record .item .bottom .bnt~.bnt {
-		margin-left: 18upx;
-	}
-</style>

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 172
pages/activity/goods_bargain/index.vue


Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 726
pages/activity/goods_bargain_details/index.vue


+ 0 - 430
pages/cart/cart.vue

@@ -1,430 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 空白页 -->
-		<view v-if="!hasLogin || empty === true" class="empty">
-			<image src="/static/error/emptyCart.png" class="emptyImg" mode="aspectFit"></image>
-			<view v-if="hasLogin" class="empty-tips">
-				空空如也
-				<navigator class="navigator" v-if="hasLogin" url="../index/index" open-type="switchTab">随便逛逛></navigator>
-			</view>
-			<view v-else class="empty-tips">
-				空空如也
-				<view class="navigator" @click="navToLogin">去登陆></view>
-			</view>
-		</view>
-		<view v-else>
-			<!-- 列表 -->
-			<view class="cart-list">
-				<block v-for="(item, index) in cartList" :key="item.id">
-					<view class="cart-item" :class="{ 'b-b': index !== cartList.length - 1 }">
-						<view class="image-wrapper">
-							<image
-								:src="item.productInfo.image"
-								:class="[item.loaded]"
-								mode="aspectFill"
-								lazy-load
-								@load="onImageLoad('cartList', index)"
-								@error="onImageError('cartList', index)"
-							></image>
-							<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.checked }" @click="check('item', index)"></view>
-						</view>
-						<view class="item-right">
-							<text class="clamp title">{{ item.productInfo.store_name }}</text>
-							<text class="attr">{{ item.attr_val }}</text>
-							<text class="price">¥{{ item.productInfo.price }}</text>
-							<uni-number-box
-								class="step"
-								:min="1"
-								:max="item.productInfo.stock"
-								:value="item.cart_num > item.productInfo.stock ? item.productInfo.stock : item.cart_num"
-								:isMax="item.cart_num >= item.productInfo.stock ? true : false"
-								:isMin="item.cart_num === 1"
-								:index="index"
-								@eventChange="numberChange"
-							></uni-number-box>
-						</view>
-						<text class="del-btn iconfont iconclose" @click="deleteCartItem(index)"></text>
-					</view>
-				</block>
-			</view>
-			<!-- 底部菜单栏 -->
-			<view class="action-section">
-				<view class="checkbox">
-					<view class="iconfont iconroundcheckfill icon-checked-box" @click="check('all')" :class="{ 'icon-checked': allChecked }"></view>
-					<view class="clear-btn" @click="allChecked ? clearCart() : ''" :class="{ show: allChecked }"><text>清空</text></view>
-				</view>
-				<view class="total-box">
-					<text class="price">¥{{ total }}</text>
-					<!-- <text class="coupon">
-						已优惠
-						<text>74.35</text>
-						元
-					</text> -->
-				</view>
-				<button type="primary" class="no-border confirm-btn" @click="createOrder">去结算</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { getCartList, getCartNum, cartDel } from '@/api/user.js';
-import { mapState } from 'vuex';
-import uniNumberBox from '@/components/uni-number-box.vue';
-import { saveUrl, interceptor } from '@/utils/loginUtils.js';
-export default {
-	components: {
-		uniNumberBox
-	},
-	data() {
-		return {
-			total: 0, //总价格
-			allChecked: false, //全选状态  true|false
-			empty: false, //空白页现实  true|false
-			cartList: []
-		};
-	},
-	onShow() {
-		// 只有登录时才加载数据
-		if (this.hasLogin) {
-			this.loadData();
-		}
-	},
-	watch: {
-		//显示空白页
-		cartList(e) {
-			let empty = e.length === 0 ? true : false;
-			if (this.empty !== empty) {
-				this.empty = empty;
-			}
-		}
-	},
-	computed: {
-		...mapState('user', ['hasLogin'])
-	},
-	methods: {
-		//请求数据
-		async loadData() {
-			let obj = this;
-			getCartList({})
-				.then(function(e) {
-					console.log(e+"111");
-					// 获取当前购物车物品增加数量
-					let nub = obj.cartList.length;
-					// 获取之前对象数组
-					let aArray = obj.cartList.reverse();
-					// 获取返回数据对象数组
-					let bArray = e.data.valid.reverse();
-					obj.cartList = bArray
-						.map((item, ind) => {
-							// 设置返回数据默认为勾选状态
-							item.checked = true;
-							// 获取相同数组之前对象的数据
-							let carlist = aArray[ind];
-							// 判断之前是否已经加载完毕
-							if (carlist && carlist.loaded == 'loaded') {
-								item.loaded = 'loaded';
-							}
-							return item;
-						})
-						.reverse();
-					obj.calcTotal(); //计算总价
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-		},
-		//监听image加载完成
-		onImageLoad(key, index) {
-			// 修改载入完成后图片class样式
-			this.$set(this[key][index], 'loaded', 'loaded');
-		},
-		//监听image加载失败
-		onImageError(key, index) {
-			this[key][index].image = '/static/error/errorImage.jpg';
-		},
-		// 跳转到登录页
-		navToLogin() {
-			// 保存地址
-			saveUrl();
-			// 登录拦截
-			interceptor();
-		},
-		//选中状态处理
-		check(type, index) {
-			if (type === 'item') {
-				this.cartList[index].checked = !this.cartList[index].checked;
-			} else {
-				const checked = !this.allChecked;
-				const list = this.cartList;
-				list.forEach(item => {
-					item.checked = checked;
-				});
-				this.allChecked = checked;
-			}
-			this.calcTotal(type);
-		},
-		//数量
-		numberChange(data) {
-			let arr = this.cartList[data.index];
-			arr.cart_num = data.number;
-			getCartNum({ id: arr.id, number: data.number })
-				.then(e => {
-					console.log(e);
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-			this.calcTotal();
-		},
-		//删除
-		deleteCartItem(index) {
-			let list = this.cartList;
-			let row = list[index];
-			let id = row.id;
-			cartDel({
-				ids: id
-			});
-			this.cartList.splice(index, 1);
-			uni.hideLoading();
-			this.calcTotal();
-		},
-		//清空
-		clearCart() {
-			uni.showModal({
-				content: '清空购物车?',
-				success: e => {
-					if (e.confirm) {
-						let st = this.cartList.map(e => {
-							return e.id;
-						});
-						cartDel({
-							ids: st.join(',')
-						}).then(e => {
-							console.log(e);
-						});
-						this.cartList = [];
-					}
-				}
-			});
-		},
-		//计算总价
-		calcTotal() {
-			let list = this.cartList;
-			if (list.length === 0) {
-				this.empty = true;
-				return;
-			}
-			let total = 0;
-			let checked = true;
-			list.forEach(item => {
-				if (item.checked === true) {
-					total += item.productInfo.price * item.cart_num;
-				} else if (checked === true) {
-					checked = false;
-				}
-			});
-			this.allChecked = checked;
-			this.total = Number(total.toFixed(2));
-		},
-		//创建订单
-		createOrder() {
-			let list = this.cartList;
-			let goodsData = [];
-			list.forEach(item => {
-				if (item.checked) {
-					goodsData.push(item.id);
-				}
-			});
-
-			uni.navigateTo({
-				url: '/pages/order/createOrder?id=' + goodsData.join(',')
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.container {
-	padding-bottom: 134rpx;
-	background-color: $page-color-base;
-	/* 空白页 */
-	.empty {
-		position: fixed;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100vh;
-		padding-bottom: 100rpx;
-		display: flex;
-		justify-content: center;
-		flex-direction: column;
-		align-items: center;
-		background: #fff;
-		.emptyImg {
-			width: 300rpx;
-			height: 250rpx;
-			margin-bottom: 30rpx;
-		}
-		.empty-tips {
-			display: flex;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-disabled;
-			.navigator {
-				color: $uni-color-primary;
-				margin-left: 16rpx;
-			}
-		}
-	}
-}
-/* 购物车列表项 */
-.cart-item {
-	display: flex;
-	position: relative;
-	padding: 30rpx 40rpx;
-	.image-wrapper {
-		width: 230rpx;
-		height: 230rpx;
-		flex-shrink: 0;
-		position: relative;
-		image {
-			border-radius: 8rpx;
-		}
-	}
-	.checkbox {
-		position: absolute;
-		left: -16rpx;
-		top: -16rpx;
-		z-index: 8;
-		font-size: 44rpx;
-		line-height: 1;
-		padding: 4rpx;
-		color: $font-color-disabled;
-		background: #fff;
-		border-radius: 50px;
-	}
-	.item-right {
-		display: flex;
-		flex-direction: column;
-		flex: 1;
-		overflow: hidden;
-		position: relative;
-		padding-left: 30rpx;
-		.title,
-		.price {
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			height: 40rpx;
-			line-height: 40rpx;
-		}
-		.attr {
-			font-size: $font-sm + 2rpx;
-			color: $font-color-light;
-			height: 50rpx;
-			line-height: 50rpx;
-		}
-		.price {
-			height: 50rpx;
-			line-height: 50rpx;
-		}
-		.step {
-			margin-top: 20rpx;
-		}
-	}
-	.del-btn {
-		padding: 4rpx 10rpx;
-		font-size: 34rpx;
-		height: 50rpx;
-		color: $font-color-light;
-	}
-}
-/* 底部栏 */
-.action-section {
-	/* #ifdef H5 */
-	margin-bottom: 100rpx;
-	/* #endif */
-	position: fixed;
-	left: 30rpx;
-	bottom: 30rpx;
-	z-index: 95;
-	display: flex;
-	align-items: center;
-	width: 690rpx;
-	height: 100rpx;
-	padding: 0 30rpx;
-	background: rgba(255, 255, 255, 0.9);
-	box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
-	border-radius: 16rpx;
-	.checkbox {
-		height: 52rpx;
-		position: relative;
-		.icon-checked-box {
-			border-radius: 50rpx;
-			background-color: #ffffff;
-			width: 52rpx;
-			height: 100%;
-			position: relative;
-			z-index: 5;
-			font-size: 53rpx;
-			line-height: 1;
-			color: $font-color-light;
-		}
-		.icon-checked {
-			color: $base-color;
-		}
-	}
-	.clear-btn {
-		position: absolute;
-		left: 26rpx;
-		top: 0;
-		z-index: 4;
-		width: 0;
-		height: 52rpx;
-		line-height: 52rpx;
-		padding-left: 38rpx;
-		font-size: $font-base;
-		color: #fff;
-		background: $font-color-disabled;
-		border-radius: 0 50px 50px 0;
-		opacity: 0;
-		transition: 0.2s;
-		&.show {
-			opacity: 1;
-			width: 120rpx;
-		}
-	}
-	.total-box {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		text-align: right;
-		padding-right: 40rpx;
-		.price {
-			font-size: $font-lg;
-			color: $font-color-dark;
-		}
-		.coupon {
-			font-size: $font-sm;
-			color: $font-color-light;
-			text {
-				color: $font-color-dark;
-			}
-		}
-	}
-	.confirm-btn {
-		padding: 0 38rpx;
-		margin: 0;
-		border-radius: 100px;
-		height: 76rpx;
-		line-height: 76rpx;
-		font-size: $font-base + 2rpx;
-		background: $base-color;
-	}
-}
-/* 复选框选中状态 */
-.action-section .checkbox.checked,
-.cart-item .checkbox.checked {
-	color: $base-color;
-}
-</style>

+ 0 - 216
pages/category/category.vue

@@ -1,216 +0,0 @@
-<template>
-	<view class="content">
-		<scroll-view scroll-y class="left-aside">
-			<view v-for="item in flist" :key="item.id" class="f-item b-b" :class="{ active: item.id === currentId }" @click="tabtap(item)">{{ item.cate_name }}</view>
-		</scroll-view>
-		<scroll-view scroll-with-animation scroll-y class="right-aside" @scroll="asideScroll" :scroll-top="tabScrollTop">
-			<view v-for="item in flist" :key="item.id" class="s-list" :id="'main-' + item.id">
-				<text class="s-item">{{ item.cate_name }}</text>
-				<view class="t-list ">
-					<view @click="navToList(item.id, titem.id)" class="t-item" v-for="titem in item.children" :key="titem.id">
-						<image :src="titem.pic"></image>
-						<text>{{ titem.cate_name }}</text>
-					</view>
-				</view>
-			</view>
-		</scroll-view>
-	</view>
-</template>
-
-<script>
-import { getCategoryList } from '@/api/product.js';
-export default {
-	data() {
-		return {
-			sizeCalcState: false,
-			tabScrollTop: 0,
-			currentId: 9,
-			flist: [],
-		};
-	},
-	onLoad() {
-		this.loadData();
-	},
-	// 监听导航栏输入框点击事件
-	onNavigationBarSearchInputClicked(e) {
-		uni.navigateTo({
-			url: '/pages/product/search'
-		});
-	},
-	methods: {
-		// 载入数据
-		async loadData() {
-			let obj = this;
-			getCategoryList({})
-				.then(({ data }) => {
-					obj.flist = data.map(function(s) {
-						return s;
-					});
-				})
-				.catch(err => {
-					console.log(err);
-				});
-		},
-		//一级分类点击
-		tabtap(item) {
-			console.log(item);
-			// 判断有没有初始化页面高度对象数据
-			if (!this.sizeCalcState) {
-				this.calcSize();
-			}
-			// 获取当前点击的id
-			this.currentId = item.id;
-			console.log(item.top);
-			this.tabScrollTop = item.top;
-			console.log(this.tabScrollTop);
-		},
-		//右侧栏滚动
-		asideScroll(e) {
-			// 判断有没有初始化页面高度对象数据
-			if (!this.sizeCalcState) {
-				this.calcSize();
-			}
-			let scrollTop = e.detail.scrollTop;
-			let box = 0; //列表包裹框高度初始化
-			let bottom = 10; //距离页面底部多少像素左侧列表切换到最后一个一级分类
-			// 查询当前页面对象
-			let view = uni.createSelectorQuery().select('.content');
-			view.fields(
-				{
-					id: true,
-					dataset: true,
-					rect: true,
-					size: true,
-					scrollOffset: true
-				},
-				function(e) {
-					// 保存包裹框高度
-					box = e.height;
-				}
-			).exec();
-			// 获取所有距离顶部大于滚轮距离页面高度的所有分类
-			let tabs = this.flist.filter(item =>( item.top-10) <= scrollTop).reverse();
-			if (tabs.length > 0) {
-				// 判断是否已经到达滚轮底部
-				if (box + scrollTop + bottom >= e.detail.scrollHeight) {
-					this.currentId = this.flist[this.flist.length - 1].id;
-				} else {
-					this.currentId = tabs[0].id;
-				}
-			}
-		},
-		//计算右侧栏每个tab的高度等信息
-		calcSize() {
-			let h = 0;
-			this.flist.forEach(item => {
-				let view = uni.createSelectorQuery().select('#main-' + item.id);
-				view.fields(
-					{
-						size: true
-					},
-					data => {
-						item.top = h;
-						h += data.height;
-						item.bottom = h;
-					}
-				).exec();
-			});
-			this.sizeCalcState = true;
-		},
-		navToList(sid, tid) {
-			// 点击导航跳转到详细页面
-			uni.navigateTo({
-				url: '/pages/product/list?fid='+this.currentId+'&sid='+sid+'&tid='+tid
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.content {
-	height: 100%;
-	background-color: #f8f8f8;
-}
-
-.content {
-	display: flex;
-}
-.left-aside {
-	flex-shrink: 0;
-	width: 200rpx;
-	height: 100%;
-	background-color: #fff;
-}
-.f-item {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 100%;
-	height: 100rpx;
-	font-size: 28rpx;
-	color: $font-color-base;
-	position: relative;
-	&.active {
-		color: $base-color;
-		background: #f8f8f8;
-		&:before {
-			content: '';
-			position: absolute;
-			left: 0;
-			top: 50%;
-			transform: translateY(-50%);
-			height: 36rpx;
-			width: 8rpx;
-			background-color: $base-color;
-			border-radius: 0 4px 4px 0;
-			opacity: 0.8;
-		}
-	}
-}
-
-.right-aside {
-	flex: 1;
-	overflow: hidden;
-	padding-left: 20rpx;
-	padding-right: 20rpx;
-}
-.s-item {
-	display: flex;
-	align-items: center;
-	height: 70rpx;
-	padding-top: 8rpx;
-	font-size: 28rpx;
-	color: $font-color-dark;
-}
-.t-list {
-	display: flex;
-	flex-wrap: wrap;
-	border-radius: 15rpx;
-	width: 100%;
-	background: #fff;
-	padding-top: 12rpx;
-	&:after {
-		content: '';
-		flex: 99;
-		height: 0;
-	}
-}
-.t-item {
-	flex-shrink: 0;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	flex-direction: column;
-	width: 171rpx;
-	font-size: 26rpx;
-	color: #666;
-	padding-bottom: 20rpx;
-
-	image {
-		width: 140rpx;
-		height: 140rpx;
-	}
-}
-</style>

BIN
pages/index/baodan.png


BIN
pages/index/beijing1.png


BIN
pages/index/beijing2.png


BIN
pages/index/contain.png


BIN
pages/index/jifen.png


BIN
pages/index/lunbo.png


+ 0 - 177
pages/index/sign.vue

@@ -1,177 +0,0 @@
-<template>
-	<view>
-		<view class="title-box">
-			<view class=" title-conetnt  position-relative">
-				<view class="title-img"><image src="/static/img/img08.png" mode="aspectFit"></image></view>
-				<view class="title-content-box">
-					<view class="title-text">已连续签到</view>
-					<view class="title-day-text">
-						<text class="title-day">{{actionDay}}</text>
-						<text>天</text>
-					</view>
-					<view class="title-button" :class="{'signAction':signTrue}" @click="signTrue?'':integral()">{{signTrue?'已签到':'立即签到'}}</view>
-				</view>
-			</view>
-			<view class="title-tip"><text>共获得{{sum_integral}}积分,总签到{{allSign}}天</text></view>
-		</view>
-		<calendar class="sign-date-box" :checks="signList" checksClass="" :checkTextShow="true" checksIcon="/static/img/img07.png"></calendar>
-	</view>
-</template>
-
-<script>
-import calendar from '../../components/ss-calendar/ss-calendar.vue';
-import { signList, integral,signUser } from '@/api/functionalUnit.js';
-export default {
-	components: {
-		calendar
-	},
-	data() {
-		return {
-			money: '', //保存当前月份
-			year: '', //保存当前年份
-			day: '', //保存当前日期
-			signList: [] ,//签到日子列表
-			actionDay:0,//连续签到天数
-			allSign:0,//累计签到
-			sum_integral:0,//累计获得积分
-			signTrue:false,
-		};
-	},
-	onLoad() {
-		this.signUser();
-		this.getData();
-		this.loadList();
-	},
-	methods: {
-		// 获取当前时间
-		getData(current) {
-			const date = current ? new Date(current) : new Date();
-			this.year = date.getFullYear();//保存当前年份
-			this.month = date.getMonth() + 1;//保存当前月份
-			this.day = date.getDate();//保存当前日期
-		},
-		//获取签到用户信息
-		signUser(){
-			signUser({all:1}).then(({data}) => {
-				this.actionDay = data.sign_num;//连续签到天数
-				this.allSign = data.sum_sgin_day;//累计签到天数
-				this.sum_integral = data.sum_integral;//累计总积分
-			})
-		},
-		// 签到
-		integral() {
-			integral({})
-				.then(e => {
-					// 改为已签到
-					this.signTrue = true;
-					this.actionDay++;
-					// 保存签到成功
-					this.signList.push(this.day);
-					uni.showToast({
-						title: '签到成功',
-						duration: 2000,
-						position: 'top'
-					});
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 获取签到列表
-		loadList() {
-			let obj = this;
-			let present = this.day; //保存当前天数用于后续计算
-			let actionDay = 0; //用于计算活跃天数
-			let arr = []; //保存返回数组;
-			signList({
-				page: 1,
-				limit: 31
-			}).then(e => {
-				arr = e.data.map((e, ind) => {
-					let time = e.add_time.split('-');
-					let day = parseInt(time[2].replace(/^0/i, ''));
-					let year = time[0];
-					let month = +time[1];
-					if (obj.year == year && obj.month == month) {
-						return day;
-					}
-				});
-				this.signList = arr;
-				// 判断今天是否已经签到
-				if(arr[0]==this.day){
-					this.signTrue = true;
-				}
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-}
-.sign-date-box {
-	margin: 25rpx;
-	border-radius: 15rpx;
-	margin-top: -70rpx;
-}
-.title-box {
-	background-color: $base-color;
-	padding-top: 120rpx;
-	color: #ffffff;
-	height: 590rpx;
-	.title-conetnt {
-		height: 350rpx;
-		width: 350rpx;
-		margin: 0 auto;
-		text-align: center;
-		.title-img {
-			position: absolute;
-			top: 0;
-			left: 0;
-			height: 100%;
-			width: 100%;
-			image {
-				height: 100%;
-				width: 100%;
-			}
-		}
-		.title-content-box {
-			position: absolute;
-			width: 100%;
-			.title-day-text {
-				padding: 20rpx;
-				font-size: $font-base - 2rpx;
-				.title-day {
-					font-size: 60rpx;
-				}
-			}
-			.title-text {
-				font-size: 26rpx;
-				padding-top: 100rpx;
-			}
-			.title-button {
-				background-color: #fe7e51;
-				border-radius: 99rpx;
-				width: 200rpx;
-				height: 64rpx;
-				margin: 0 auto;
-				line-height: 64rpx;
-				text-align: center;
-				font-size: $font-base;
-				&.signAction{
-					background-color: $font-color-light;
-				}
-			}
-		}
-	}
-}
-.title-tip {
-	color: #ffffff;
-	font-size: $font-base - 2rpx;
-	padding-top: 20rpx;
-	text-align: center;
-	margin-top: -40rpx;
-}
-</style>

+ 0 - 236
pages/money/account.vue

@@ -1,236 +0,0 @@
-<template>
-	<view class="content">
-		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-
-		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<view class="row b-b">
-					<text class="tit">姓名</text>
-					<input class="input" v-model="tabItem.orderList.name" type="text" placeholder="提款人姓名" placeholder-class="placeholder" />
-				</view>
-				<view class="row b-b">
-					<text class="tit">{{ tabIndex == 0 ? '账号' : '银行卡号' }}</text>
-					<input class="input" v-model="tabItem.orderList.code" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
-				</view>
-				<view class="row b-b" v-if="tabIndex == 1">
-					<text class="tit">所属银行</text>
-					<input class="input" v-model="tabItem.orderList.bankName" type="text" placeholder="请输入账号" placeholder-class="placeholder" />
-				</view>
-			</swiper-item>
-		</swiper>
-
-		<button class="add-btn up" @click="confirm">提交申请</button>
-	</view>
-</template>
-
-<script>
-import { aliInfo, bankInfo, setAliInfo, setBankInfo } from '@/api/wallet.js';
-export default {
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '支付宝',
-					loadingType: 'more',
-					orderList: {
-						name: '',
-						code: '',
-						id:''
-					}
-				},
-				{
-					state: 1,
-					text: '银行卡',
-					loadingType: 'more',
-					orderList: {
-						name: '',
-						code: '',
-						bankName: '',
-						id:''
-					}
-				}
-			]
-		};
-	},
-
-	onLoad(options) {
-		this.tabCurrentIndex = +options.state || 0;
-		this.loadAli();
-		this.loadBank();
-	},
-
-	methods: {
-		//加载数据
-		loadAli(source) {
-			aliInfo({}).then(({data}) => {
-				let order = this.navList[0].orderList;
-				this.$set(order,'name',data.fullname)
-				this.$set(order,'code',data.alino)
-				this.$set(order,'id',data.id)
-			});
-		},
-		loadBank() {
-			bankInfo({}).then(({data}) => {
-				let order = this.navList[1].orderList;
-				this.$set(order,'name',data.fullname);
-				this.$set(order,'code',data.bankno);
-				this.$set(order,'bankName',data.bank);
-				this.$set(order,'id',data.id)
-			});
-		},
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		},
-		// 提交保存
-		confirm() {
-			let obj = this;
-			let arr = obj.navList[obj.tabCurrentIndex].orderList;
-			if (obj.tabCurrentIndex == 1) {
-				obj.setBankInfo({
-					fullname: arr.name,
-					bank: arr.bankName,
-					bankno: arr.code,
-					id:arr.id
-				});
-			}
-			if (obj.tabCurrentIndex == 0) {
-				obj.setAliInfo({
-					fullname: arr.name,
-					alino: arr.code,
-					id:arr.id
-				});
-			}
-		},
-		/* 保存银行卡详细 */
-		setBankInfo(obj) {
-			setBankInfo(obj)
-				.then(e => {
-					uni.showToast({
-						title: '修改成功',
-						duration: 2000,
-						position: 'top'
-					});
-					this.$api.prePage().dataUp()
-					setTimeout(() => {
-						uni.navigateBack()
-					},1500)
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 修改支付宝信息
-		setAliInfo(obj) {
-			setAliInfo(obj)
-				.then(e => {
-					uni.showToast({
-						title: '修改成功',
-						duration: 2000,
-						position: 'top'
-					});
-					this.$api.prePage().dataUp()
-					setTimeout(() => {
-						uni.navigateBack()
-					},1500)
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-	}
-};
-</script>
-
-<style lang="scss">
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.swiper-box {
-	height: 750rpx;
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
-			}
-		}
-	}
-}
-
-.add-btn {
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-</style>

+ 0 - 370
pages/money/pay.vue

@@ -1,370 +0,0 @@
-<template>
-	<view class="app">
-		<view class="price-box">
-			<text>支付金额</text>
-			<text class="price">{{ money }}</text>
-		</view>
-		<view class="pay-type-list">
-			<view class="type-item b-b" @click="changePayType(1)">
-				<text class="icon iconfont iconweixin"></text>
-				<view class="con">
-					<text class="tit">微信支付</text>
-					<text>推荐使用微信支付</text>
-				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 1"></radio></label>
-			</view>
-			<!-- #ifdef APP-PLUS -->
-			<view class="type-item b-b" @click="changePayType(2)">
-				<text class="icon iconfont iconzhifubao"></text>
-				<view class="con"><text class="tit">支付宝支付</text></view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 2"></radio></label>
-			</view>
-			<!-- #endif -->
-			<view class="type-item" @click="changePayType(3)">
-				<text class="icon iconfont iconyue"></text>
-				<view class="con">
-					<text class="tit">余额支付</text>
-					<text>可用余额 ¥{{ now_money }}</text>
-				</view>
-				<label class="radio"><radio value="" color="#5dbc7c" :checked="payType == 3"></radio></label>
-			</view>
-		</view>
-		<text class="mix-btn" :class="{ clickbg: payLoding }" @click="!payLoding ? confirm() : ''">确认支付</text>
-	</view>
-</template>
-
-<script>
-import { balance } from '@/api/wallet.js';
-import { createOrderkey,computedOrderkey,orderPay } from '@/api/order.js';
-import { mapState } from 'vuex';
-export default {
-	data() {
-		return {
-			payType: 1, //支付类型
-			// #ifdef H5
-			payName: 'weixin',
-			// #endif
-			// #ifdef MP-WEIXIN
-			payName: 'weixin',
-			// #endif
-			orderInfo: {},
-			money: 0.0, //订单金额
-			now_money: 0.0, //余额
-			orderKey: '',
-			orderId: '', //保存订单id
-			payLoding: false, //判断是否支付中
-			type: '', //判断是否从订单中进入
-			// #ifdef H5
-			froms: '', //保存h5中数据来源对象
-			// #endif
-			pinkid: '' //保存拼团商品id
-		};
-	},
-	computed: {
-		// #ifdef H5
-		...mapState(['weichatObj'])
-		// #endif
-	},
-	onLoad(options) {
-		if (options.type == 1) {
-			this.type = 1;
-			this.orderId = options.ordid;
-			this.money = options.money;
-		} else {
-			this.orderKey = options.key;
-			let prepage = this.$api.prePage();
-			computedOrderkey({
-				orderkey: this.orderKey,
-				couponId: prepage.couponChecked.id, //优惠券编号
-				addressId: prepage.addressData.id, //地址编号
-				useIntegral: prepage.checkedPoints ? 1 : 0
-			}).then(({ data }) => {
-				// 获取支付金额
-				this.money = data.result.pay_price;
-			});
-		}
-		// 保存pinkid
-		if (options.pinkid) {
-			this.pinkid = options.pinkid;
-		}
-		// 载入余额
-		balance({}).then(({ data }) => {
-			// 获取余额
-			this.now_money = data.now_money;
-		});
-	},
-	methods: {
-		//选择支付方式
-		changePayType(type) {
-			this.payType = type;
-			if (this.payType == 1) {
-				this.payName = 'weixin';
-			}
-			if (this.payType == 2) {
-				this.payName = 'ali';
-			}
-			if (this.payType == 3) {
-				this.payName = 'yue';
-			}
-		},
-		// 支付金额
-		orderMoneyPay() {
-			let obj = this;
-			orderPay({
-				uni: obj.orderId,
-				// #ifdef H5
-				from: obj.froms ? 'weixin' : 'H5', //来源
-				// #endif
-				// #ifdef MP-WEIXIN
-				from: 'routine', //来源
-				// #endif
-				// #ifdef APP-PLUS
-				from: 'app', //来源
-				// #endif
-				paytype: obj.payName //支付类型  weixin-微信 yue-余额
-			})
-				.then(e => {
-					// 判断是否为余额支付
-					if (obj.payName == 'yue' && e.data.status == 'SUCCESS') {
-						if (e.status == 200) {
-							obj.paySuccessTo();
-						} else {
-							obj.$api.msg(msg);
-						}
-					}
-					if (obj.payName == 'weixin' || obj.payName == 'routine') {
-						let da = e.data.result.jsConfig;
-						let data = {
-							// #ifdef H5
-							timestamp: da.timestamp,
-							// #endif
-							// #ifdef MP
-							timeStamp: da.timestamp,
-							// #endif
-							nonceStr: da.nonceStr,
-							package: da.package,
-							signType: da.signType,
-							paySign: da.paySign,
-							success: function(res) {
-								obj.paySuccessTo();
-							},
-							fail: () => {
-								uni.navigateTo({
-									url: '/pages/order/order?state=0'
-								});
-							}
-						};
-						// #ifdef H5
-						if(obj.payName == 'weixin'){
-						obj.weichatObj.chooseWXPay(data);
-						}
-						// #endif
-						// #ifdef MP-WEIXIN
-						if(obj.payName == 'routine'){
-							wx.requestPayment(data);
-						}
-						// #endif
-					}
-					uni.hideLoading();
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					// 支付完成
-					uni.hideLoading();
-					obj.payLoding = false;
-					console.log(e);
-				});
-		},
-		// 支付成功跳转
-		paySuccessTo() {
-			uni.hideLoading();
-			uni.redirectTo({
-				url: '/pages/money/paySuccess?orderid=' + this.orderId
-			});
-		},
-		//确认支付
-		confirm: async function() {
-			let obj = this;
-			uni.showLoading({
-				title: '支付中',
-				mask: true
-			})
-			// 判断是否余额不足
-			if (obj.payName == 'yue' && +obj.now_money < obj.money) {
-				uni.showModal({
-					title: '提示',
-					content: '账户余额不足!',
-					showCancel: false,
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-				return;
-			}
-			// 支付中
-			obj.payLoding = true;
-			// #ifdef H5
-			// 获取当前是否为微信浏览器
-			obj.froms = uni.getStorageSync('weichatBrowser') || '';
-			// #endif
-			// 判断是否为未支付订单中跳转进入
-			if (obj.type != 1) {
-				// 初次生成订单
-				obj.firstCreateOrder();
-			} else {
-				// 已经生成订单未支付
-				obj.orderMoneyPay();
-			}
-		},
-		// 初次订单创建
-		firstCreateOrder() {
-			let obj = this;
-			// 获取下单页面数据
-			let prepage = obj.$api.prePage();
-
-			let data = {
-				real_name: prepage.addressData.real_name, //联系人名称
-				phone: prepage.addressData.phone, //联系人号码
-				couponId: prepage.couponChecked.id, //优惠券编号
-				addressId: prepage.addressData.id, //支付地址id
-				useIntegral: prepage.checkedPoints ? 1 : 0, //是否积分抵扣1为是0为否
-				payType: obj.payName, //支付类型  weixin-微信 yue-余额
-				mark: prepage.desc, //备注
-				// #ifdef H5
-				from: obj.froms ? 'weixin' : 'H5', //来源
-				// #endif
-				// #ifdef MP-WEIXIN
-				from: 'routine', //来源
-				// #endif
-				// #ifdef APP-PLUS
-				from: 'app', //来源
-				// #endif
-				shipping_type: 1 //提货方式 1 快递 2自提
-			};
-			// 判断是否拼团商品
-			if (obj.pinkid) {
-				data.pinkId = obj.pinkid;
-			}
-			// 生成订单
-			createOrderkey(data, obj.orderKey)
-				.then(({ data, status, msg }) => {
-					// 判断是否支付失败
-					if (data.status == 'ORDER_EXIST') {
-						uni.showModal({
-							title: '提示',
-							content: msg,
-							showCancel: false
-						});
-						uni.hideLoading();
-						obj.payLoding = false;
-						return;
-					}
-					// 保存订单号
-					obj.orderId = data.result.orderId;
-					// 判断是否为余额支付
-					if (obj.payName == 'yue') {
-						if (status == 200 && data.status == 'SUCCESS') {
-							obj.paySuccessTo();
-						} else {
-							obj.$api.msg(msg);
-						}
-					} else {
-						// 立即支付
-						obj.orderMoneyPay();
-					}
-				})
-				.catch(e => {
-					uni.hideLoading();
-					obj.payLoding = false;
-					console.log(e);
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.app {
-	width: 100%;
-}
-
-.price-box {
-	background-color: #fff;
-	height: 265upx;
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	align-items: center;
-	font-size: 28upx;
-	color: #909399;
-
-	.price {
-		font-size: 50upx;
-		color: #303133;
-		margin-top: 12upx;
-		&:before {
-			content: '¥';
-			font-size: 40upx;
-		}
-	}
-}
-
-.pay-type-list {
-	margin-top: 20upx;
-	background-color: #fff;
-	padding-left: 60upx;
-	.type-item {
-		height: 120upx;
-		padding: 20upx 0;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		padding-right: 60upx;
-		font-size: 30upx;
-		position: relative;
-	}
-
-	.icon {
-		width: 100upx;
-		font-size: 52upx;
-	}
-	.iconyue {
-		color: #fe8e2e;
-	}
-	.iconweixin {
-		color: #36cb59;
-	}
-	.iconzhifubao {
-		color: #01aaef;
-	}
-	.tit {
-		font-size: $font-lg;
-		color: $font-color-dark;
-		margin-bottom: 4upx;
-	}
-	.con {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		font-size: $font-sm;
-		color: $font-color-light;
-	}
-}
-.mix-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 630upx;
-	height: 80upx;
-	margin: 80upx auto 30upx;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10upx;
-	/* box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4); */
-}
-
-.clickbg {
-	background-color: $color-gray !important;
-}
-</style>

+ 0 - 65
pages/money/paySuccess.vue

@@ -1,65 +0,0 @@
-<template>
-	<view class="content">
-		<text class="success-icon iconfont iconroundcheck"></text>
-		<text class="tit">支付成功</text>
-		<view class="btn-group">
-			<navigator :url="'/pages/order/orderDetail?id='+orderId" open-type="redirect" class="mix-btn">查看订单</navigator>
-			<navigator url="/pages/index/index" open-type="switchTab" class="mix-btn hollow">返回首页</navigator>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				orderId:''
-			}
-		},
-		onLoad(opt) {
-			// 保存订单号
-			this.orderId = opt.orderid;
-		},
-		methods: {
-			
-		}
-	}
-</script>
-
-<style lang='scss'>
-	.content{
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-	}
-	.success-icon{
-		font-size: 160upx;
-		color: #5dbc7c;
-		margin-top: 100upx;
-	}
-	.tit{
-		font-size: 38upx;
-		color: #303133;
-	}
-	.btn-group{
-		padding-top: 100upx;
-	}
-	.mix-btn {
-		margin-top: 30upx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		width: 600upx;
-		height: 80upx;
-		font-size: $font-lg;
-		color: #fff;
-		background-color: $base-color;
-		border-radius: 10upx;
-		&.hollow{
-			background: #fff;
-			color: #303133;
-			border: 1px solid #ccc;
-		}
-	}
-</style>

+ 0 - 264
pages/money/recharge.vue

@@ -1,264 +0,0 @@
-<template>
-	<view class="content">
-		<view class="row-box">
-			<view class="title">充值金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="money" placeholder="请输入充值金额" placeholder-class="placeholder" />
-			</view>
-		</view>
-
-		<view class="list">
-			<radio-group @change="tabRadio">
-				<!-- #ifdef APP-PLUS -->
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconzhifubao"></view>
-						<view class="title-box">
-							<view class="title"><text>支付宝充值</text></view>
-						</view>
-						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconweixin1"></view>
-						<view class="title-box">
-							<view class="title"><text>微信充值</text></view>
-							<view class="node"><text>真实姓名(代勇明)</text></view>
-						</view>
-						<view class="right"><radio value="weixin" color=" #5dbc7c" :checked="type == 'weixin'" /></view>
-					</view>
-				</label>
-				<!-- #endif -->
-			</radio-group>
-		</view>
-		<button class="add-btn up" :class="{ 'active-bg': payLoding }" @click="!payLoding ? confirm() : ''">确认充值</button>
-	</view>
-</template>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-// #ifdef H5
-import { rechargeWechat } from '@/api/wallet.js';
-// #endif
-// #ifdef MP
-import { rechargeRoutine } from '@/api/wallet.js';
-// #endif
-import { mapState } from 'vuex';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	data() {
-		return {
-			type: 'weixin',
-			money: '', //充值金额
-			payLoding: false //是否加载中
-		};
-	},
-	onLoad(options) {},
-	computed: {
-		// #ifdef H5
-		...mapState(['weichatObj'])
-		// #endif
-	},
-	methods: {
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e;
-		},
-		// 提交
-		confirm() {
-			let obj = this;
-			obj.payLoding = true;
-			// #ifdef H5
-			rechargeWechat({ price: this.money, from: this.type })
-				.then(e => {
-					let da = e.data.data;
-					obj.weichatObj.chooseWXPay({
-						timestamp: da.timestamp,
-						nonceStr: da.nonceStr,
-						package: da.package,
-						signType: da.signType,
-						paySign: da.paySign,
-						success: function(res) {
-							uni.showToast({
-								title: '充值成功',
-								duration: 2000,
-								position: 'top'
-							});
-						}
-					});
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					obj.payLoding = false;
-					console.log(e);
-				});
-			// #endif
-			// #ifdef MP
-			rechargeRoutine({ price: this.money})
-				.then(e => {
-					let da = e.data;
-						wx.requestPayment({
-								timeStamp: da.timestamp,
-								nonceStr: da.nonceStr,
-								package: da.package,
-								signType: da.signType,
-								paySign: da.paySign,
-								success: function(res) {
-									uni.redirectTo({
-										url: '/pages/money/paySuccess'
-									});
-								},
-								
-							})
-					
-					obj.payLoding = false;
-				})
-				.catch(e => {
-					obj.payLoding = false;
-					console.log(e);
-				});
-			// #endif
-		},
-		//获取订单列表
-		loadData(source) {
-			console.log(source);
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			navItem.loadingType = 'loading';
-			setTimeout(() => {
-				let orderList = [];
-				orderList.forEach(item => {
-					navItem.orderList.push(item);
-				});
-				//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
-				this.$set(navItem, 'loaded', true);
-				//判断是否还有数据, 有改为 more, 没有改为noMore
-				navItem.loadingType = 'more';
-			}, 600);
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-
-.add-btn {
-	&.modified {
-		color: $base-color;
-	}
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.input {
-			flex: 1;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.iconlocation {
-			font-size: 36rpx;
-			color: $font-color-light;
-		}
-
-		.buttom {
-			color: $font-color;
-			font-size: $font-base;
-		}
-	}
-}
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
-		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
-			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-
-.active-bg {
-	background-color: $color-gray !important;
-}
-</style>

+ 0 - 317
pages/money/wallet.vue

@@ -1,317 +0,0 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="money-box">
-				<view class="text">可提现金额(元)</view>
-				<view class="money">{{ money | getMoneyStyle }}</view>
-			</view>
-			<view class="moneyTx" @click="navto('/pages/money/recharge')">充值</view>
-			<view class="flex buttom-box">
-				<view class="buttom" @click="navto('/pages/money/recharge')">
-					<view class="icon"><image class="icon-img" src="/static/icon/i5.png" mode="aspectFit"></image></view>
-					<text>充值</text>
-				</view>
-				<view class="interval"></view>
-				<view class="buttom" @click="navto('/pages/money/withdrawal')">
-					<view class="icon"><image class="icon-img" src="/static/icon/i1.png" mode="aspectFit"></image></view>
-					<text>提现</text>
-				</view>
-			</view>
-		</view>
-		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-		<swiper :current="tabCurrentIndex" :style="{'height':maxheight+'px'}" class="swiper-box" duration="300" @change="changeTab">
-			<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>
-
-					<!-- 订单列表 -->
-					<view v-for="(item, index) in tabItem.orderList" :key="index" class="order-item flex">
-						<view class="title-box">
-							<view class="title">
-								<text>{{ item.title }}</text>
-							</view>
-							<view class="time">
-								<text>{{ item.add_time }}</text>
-							</view>
-						</view>
-						<view class="money">
-							<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
-						</view>
-					</view>
-					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { spreadCommission, userBalance } from '@/api/wallet.js';
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	components: {
-		empty,
-		uniLoadMore
-	},
-	onReady() {
-		// 初始化获取页面宽度
-		uni.createSelectorQuery()
-			.select('.content')
-			.fields(
-				{
-					size: true
-				},
-				data => {
-					console.log(data);
-					console.log(Math.floor((data.width / 750) * 300));
-					// 保存头部高度
-					this.maxheight =data.height - Math.floor((data.width / 750) * 570);
-					console.log(this.maxheight);
-				}
-			)
-			.exec();
-	},
-	data() {
-		return {
-			// 头部图高度
-			maxheight:'',
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				}
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.loadData();
-		// 获取用户余额
-		userBalance({}).then(({ data }) => {
-			this.money = data.now_money;
-		});
-	},
-	methods: {
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		//获取收入支出信息
-		async loadData(source) {
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-
-			spreadCommission(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				state
-			)
-				.then(({ data }) => {
-					if (data.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data[0].list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #ffffff;
-	height: 100%;
-}
-.content-money {
-	padding-bottom: 30rpx;
-	background: $page-color-base;
-	.moneyTx {
-		position: absolute;
-		top: 150rpx;
-		right: 0rpx;
-		width: 150rpx;
-		padding: 10rpx 30rpx;
-		border: 2px solid #ffffff;
-		border-top-left-radius: 99rpx;
-		border-bottom-left-radius: 99rpx;
-		color: #ffffff;
-		line-height: 1;
-		font-size: $font-base;
-	}
-	.buttom-box {
-		background-color: #ffffff;
-		text-align: center;
-		margin: 0 30rpx;
-		padding: 20rpx 0;
-		border-radius: $border-radius-sm;
-		margin-top: -60rpx;
-		.buttom {
-			font-size: $font-lg;
-			flex-grow: 1;
-		}
-		.interval {
-			width: 2px;
-			height: 60rpx;
-			background-color: #eeeeee;
-		}
-		.icon {
-			height: 50rpx;
-			width: 48rpx;
-			margin: 0 auto;
-			.icon-img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-	}
-}
-.money-box {
-	background-color: $base-color;
-	padding-top: var(--status-bar-height);
-	height: 368rpx;
-	color: #ffffff;
-	text-align: center;
-	.text {
-		padding-top: 147rpx;
-		font-size: $font-sm;
-	}
-	.money {
-		font-size: 56rpx;
-	}
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
-			}
-		}
-	}
-}
-// 列表
-
-.swiper-box {
-	padding-top: 10rpx;
-	.order-item {
-		padding: 20rpx 30rpx;
-		line-height: 1.5;
-		.title-box {
-			.title {
-				font-size: $font-lg;
-				color: $font-color-base;
-			}
-			.time {
-				font-size: $font-base;
-				color: $font-color-light;
-			}
-		}
-		.money {
-			color: #fd5b23;
-			font-size: $font-lg;
-		}
-	}
-}
-.list-scroll-content {
-	height: 100%;
-}
-.content {
-	height: 100%;
-	.empty-content {
-		background-color: #ffffff;
-	}
-}
-</style>

+ 0 - 312
pages/money/withdrawal.vue

@@ -1,312 +0,0 @@
-<template>
-	<view class="content">
-		<uni-notice-bar single="true" text="每月25号到月底可提现上月结算余额"></uni-notice-bar>
-		<view class="content-money">
-			<view class="flex ">
-				<view class="buttom">
-					<view class="icon">{{ money | getMoneyStyle }}</view>
-					<text class="text">可提现金额</text>
-				</view>
-				<view class="interval"></view>
-				<view class="buttom">
-					<view class=" icon">{{ freeze | getMoneyStyle }}</view>
-					<text class="text">待审核提现金额</text>
-				</view>
-			</view>
-		</view>
-		<view class="row-box">
-			<view class="title">提现金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
-				<view class="buttom" @click="withdrawal = money">全部提现</view>
-			</view>
-		</view>
-		<!-- #ifndef MP-WEIXIN -->
-		<view class="list" v-if="!weichatBsrowser">
-			<radio-group @change="tabRadio">
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconweixin1"></view>
-						<view class="title-box">
-							<view class="title"><text>提现至微信</text></view>
-						</view>
-						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconzhifubao"></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="aliData.fullname">提现至支付宝</text>
-								<text v-else>请创建支付宝账号</text>
-							</view>
-							<view class="node">
-								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont"><image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
-								<text v-else>请创建银行账号</text>
-							</view>
-							<view class="node">
-								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="bank" color="#5dbc7c" :checked="type == 'bank'" /></view>
-					</view>
-				</label>
-			</radio-group>
-		</view>
-		<!-- #endif -->
-		<button class="add-btn up" @click="confirm">提交申请</button>
-		<button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button>
-	</view>
-</template>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
-import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	components: {
-		uniNoticeBar
-	},
-	data() {
-		return {
-			type: 'weixin', //提现方式
-			money: '0.00', //可提现金额
-			freeze: '0.0', //冻结金额
-			withdrawal: '', //提现金额
-			minPrice: '', //最少提现金额
-			aliData: {},
-			bankData: {},
-			// #ifdef H5
-			weichatBsrowser: false
-			// #endif
-		};
-	},
-	onLoad(options) {
-		// #ifdef H5
-		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-		// #endif
-		//加载提现信息
-		this.loadData();
-		// 加载提款账号信息
-		this.loadAli();
-		this.loadBank();
-	},
-	methods: {
-		// 更新数据
-		dataUp(){
-			this.loadAli();
-			this.loadBank();
-		},
-		//加载数据
-		async loadAli(source) {
-			aliInfo({}).then(e => {
-				this.aliData = e.data;
-			});
-		},
-		// 加载银行卡信息
-		async loadBank() {
-			bankInfo({}).then(e => {
-				this.bankData = e.data;
-			});
-		},
-		// 加载余额信息
-		async loadData() {
-			extractBank({}).then(({ data }) => {
-				this.money = data.moneyCount;//可提现余额
-				this.minPrice = data.minPrice;//最小提现
-				this.freeze =data.inmoneyCount//提现中的余额
-			});
-		},
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
-		// 提交
-		confirm() {
-			let data = {
-				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-				money: this.withdrawal, //金额
-				money_type: 1//0佣金1余额
-			}
-			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.showToast({
-						title: '提交成功',
-						duration: 2000,
-						position: 'top'
-					});
-				})
-				.catch(e => {
-					console.log();
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.content-money {
-	padding: 30rpx 0;
-	background: #ffffff;
-}
-.flex {
-	background-color: #ffffff;
-	text-align: center;
-	margin: 0 30rpx;
-	border-radius: $border-radius-sm;
-	.buttom {
-		font-size: $font-lg;
-		width: 50%;
-	}
-	.interval {
-		width: 2px;
-		height: 60rpx;
-		background-color: #eeeeee;
-	}
-	.icon {
-		background-size: 100%;
-		font-size: 42rpx;
-		color: $font-color-dark;
-		font-weight: bold;
-		background-repeat: no-repeat;
-		background-position: center;
-	}
-	.text {
-		color: $font-color-light;
-	}
-}
-
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.input {
-			flex: 1;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.iconlocation {
-			font-size: 36rpx;
-			color: $font-color-light;
-		}
-
-		.buttom {
-			color: $font-color-spec;
-			font-size: $font-base;
-		}
-	}
-}
-.add-btn {
-	&.modified {
-		color: $base-color;
-	}
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-			.icon-img {
-				height: 50rpx;
-				width: 50rpx;
-			}
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
-		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
-			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-</style>

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 165
pages/order/createOrder.vue


+ 0 - 405
pages/order/evaluate.vue

@@ -1,405 +0,0 @@
-<template>
-	<view class="content">
-		<view class="order-item">
-			<view class="goods-box-single">
-				<image class="goods-img" :src="productInfo.image" mode="aspectFill"></image>
-				<view class="right position-relative">
-					<view class="flex">
-						<text class="title">{{ productInfo.store_name }}</text>
-						<view class="title-right">
-							<view class="price">{{ productInfo.price }}</view>
-							<view class="attr-box">x{{ list.cart_num }}</view>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view>
-				<view class="flex_item zhil">
-					<view>商品质量</view>
-					<view><uniRate text="1" size="20" margin="10" :value="rateValue1" @change="rateChange1"></uniRate></view>
-				</view>
-				<view class="flex_item zhil">
-					<view>服务态度</view>
-					<view><uniRate text="1" size="20" margin="10" :value="rateValue2" @change="rateChange2"></uniRate></view>
-				</view>
-				<view class="equity_box">
-					<view class="text-box uni-textarea">
-						<textarea placeholder-style="color:#999" :placeholder="placeholder" @blur="bindTextAreaBlur"></textarea>
-					</view>
-					<view class="">
-						<view class="add-img-box flex_item">
-							<view class="add-img-item" v-for="(item, index) in imgList" :key="index">
-								<image class="add-img" @click.stop="imgInfo(index)" :src="item.url" mode="aspectFill"></image>
-								<image class="add-img-del" @click.stop="delImg(index)" src="/static/img/delete.png"></image>
-							</view>
-							<view v-if="imgList.length < 9" class="add-img-item" @click.stop="scImg()">
-								<image class="add-img" src="/static/img/add.png"></image>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view @click.stop="submit" class="address-box submit-box"><text class="submit-btn">提交评论</text></view>
-	</view>
-</template>
-
-<script>
-import { product, upload, order_comment } from '@/api/order.js';
-import uniRate from '@/components/uni-rate/uni-rate.vue';
-export default {
-	components: {
-		uniRate
-	},
-	data() {
-		return {
-			list: '', //订单详情
-			productInfo: '',
-			text: '', //评论内容
-			placeholder: '商品满足你的期待么?说说你的想法,分享给想买的他们吧~',
-			imgList: [],
-			unique: '', //商品唯一标识码
-			cloudimgList: [],
-			rateValue1: '', //商品质量
-			rateValue2: '', //服务态度
-			imgCount: 6 //最多支持9张上传,可以修改
-		};
-	},
-	onLoad(option) {
-		this.unique = option.unique;
-		this.loadOrder();
-	},
-	onShow() {},
-	methods: {
-		//text
-		bindTextAreaBlur: function(e) {
-			this.text = e.detail.value;
-		},
-		//获取收入支出信息
-		async loadOrder() {
-			product({
-				unique: this.unique
-			}).then(e => {
-				this.list = e.data;
-				this.productInfo = e.data.productInfo;
-			});
-		},
-		//商品质量评分
-		rateChange1(val) {
-			this.rateValue1 = val.value;
-		},
-		//服务态度评分
-		rateChange2(val) {
-			this.rateValue2 = val.value;
-		},
-		//单张上传图片
-		scImg() {
-			let obj = this;
-			console.log(obj.imgCount, 11);
-			if (obj.imgCount == 0) {
-				uni.showToast({
-					title: '最多添加6张图片',
-					icon: 'none'
-				});
-				return;
-			}
-			upload({
-				file: ''
-			})
-				.then(e => {
-					console.log(e,'e')
-					obj.imgList = [...obj.imgList, ...e];
-					console.log(obj.imgList,'imgList')
-					obj.imgCount = 10 - obj.imgList.length;
-					console.log(obj.imgCount ,'imgCount ')
-				})
-				.catch(e => {});
-		},
-		//提交评论
-		submit(e) {
-			let obj = this;
-			if (obj.imgList.length < 1) {
-				uni.showToast({
-					title: '请添加图片',
-					icon: 'none'
-				});
-				return;
-			}
-			for (let i = 0; i < obj.imgList.length; i++) {
-				obj.cloudimgList.push(obj.imgList[i].url);
-			}
-			let arr = obj.cloudimgList.join(',');
-			order_comment({
-				pics: arr,
-				comment: obj.text,
-				product_score: obj.rateValue1,
-				service_score: obj.rateValue2,
-				unique: obj.unique,
-				
-			})
-				.then(e => {
-					uni.navigateTo({
-						url: '/pages/order/order?state=4'
-					});
-				})
-				.catch(e => {
-					uni.navigateTo({
-						url: '/pages/order/order?state=4'
-					});
-				});
-		},
-		//点击图片显示大图
-		imgInfo(i) {
-			let tempList = [];
-			console.log(111);
-			this.imgList.forEach(e => {
-				tempList.push(e.url);
-			});
-			console.log(tempList);
-			//显示图片
-			uni.previewImage({
-				current: i,
-				loop: false,
-				urls: tempList,
-				indicator: 'default'
-			});
-		},
-		//删除图片
-		delImg(i) {
-			uni.showModal({
-				content: '确定删除这张吗',
-				success: res => {
-					if (res.confirm) {
-						this.imgList.splice(i, 1);
-						this.imgCount++;
-					} else if (res.cancel) {
-					}
-				}
-			});
-		},
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #ffffff;
-	height: 100%;
-	.content {
-		background: #ffffff;
-		height: 100%;
-	}
-}
-/* 多条商品 */
-.order-item {
-	display: flex;
-	flex-direction: column;
-	padding: 0rpx 30rpx;
-	background: #fff;
-	margin-top: 20rpx;
-	/* 单条商品 */
-	.goods-box-single {
-		display: flex;
-		padding: 20rpx 0;
-		.goods-img {
-			display: block;
-			width: 120rpx;
-			height: 120rpx;
-		}
-		.right {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			padding: 0 30rpx 0 24rpx;
-			overflow: hidden;
-			height: 100%;
-			.title {
-				align-self: flex-start;
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				height: 80rpx;
-				overflow:hidden; 
-				text-overflow:ellipsis;
-				display:-webkit-box; 
-				-webkit-box-orient:vertical;
-				-webkit-line-clamp:2; 
-			}
-			.title-right {
-				flex-shrink: 0;
-				text-align: right;
-				align-self: flex-start;
-			}
-			.attr-box {
-				font-size: $font-sm + 2rpx;
-				color: $font-color-light;
-			}
-			.price {
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				&:before {
-					content: '¥';
-					font-size: $font-sm;
-					margin: 0 2rpx 0 8rpx;
-				}
-			}
-		}
-	}
-}
-.equity_box {
-	background-color: #fafafa;
-	border-radius: 10rpx;
-	padding: 25rpx 25rpx;
-	margin: 25rpx 0rpx;
-	.text-box {
-		height: 200rpx;
-		textarea {
-			font-size: 25rpx;
-			width: 100%;
-			height: 100%;
-			overflow: hidden;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 5;
-		}
-	}
-}
-.zhil {
-	font-size: 28rpx !important;
-	padding: 15rpx 15rpx;
-}
-.submit-box {
-	bottom: 0;
-	left: 0;
-	width: 750rpx;
-}
-.submit-btn {
-	margin-top: 10px;
-	display: inline-block;
-	width: 670rpx;
-	height: 96rpx;
-	line-height: 96rpx;
-	text-align: center;
-	background-color: #1BCC26 !important;
-	opacity: 1;
-	border-radius: 32rpx;
-	border-width: 8rpx;
-	border-color: rgba(255, 255, 255, 1);
-	box-shadow: 0rpx 8rpx 12rpx rgba(0, 0, 0, 0.16);
-	border-radius: 56rpx;
-	font-size: 39rpx;
-	font-weight: bold;
-	color: rgba(255, 255, 255, 1);
-}
-.submit-btn-txt {
-	font-size: 39rpx;
-	font-weight: bold;
-	line-height: 47rpx;
-	color: rgba(255, 255, 255, 1);
-	opacity: 1;
-}
-.map-box {
-	width: 484rpx;
-	height: 256rpx;
-	border-width: 4rpx;
-	border-color: rgba(255, 255, 255, 1);
-	box-shadow: 0rpx 0rpx 24rpx rgba(0, 0, 0, 0.16);
-	/* border-radius: 12rpx; */
-	position: relative;
-}
-.map {
-	position: absolute;
-	top: 0;
-	left: 0;
-	right: 0;
-	bottom: 0;
-	width: 476rpx;
-	height: 250rpx;
-}
-.map-img {
-	position: absolute;
-	top: 90rpx;
-	left: 156rpx;
-	width: 230rpx;
-	height: 68rpx;
-	background-color: rgba(51, 51, 51, 0.64);
-	border-width: 1rpx;
-	border-color: rgba(0, 0, 0, 0);
-	border-radius: 34px;
-
-	font-size: 28rpx;
-	font-weight: bold;
-	line-height: 66rpx;
-	color: rgba(255, 255, 255, 1);
-	text-align: center;
-}
-.address-box {
-	padding: 15rpx 40rpx;
-	margin-bottom: 10px;
-}
-.label {
-	font-size: 36rpx;
-	font-weight: bold;
-	line-height: 50rpx;
-	color: #222222;
-}
-.label-img {
-	padding-left: 40rpx;
-}
-
-.add-img-box {
-	width: 100%;
-	flex-direction: row;
-	flex-wrap: wrap;
-	margin-top: 50rpx;
-}
-.add-img-item {
-	width: 180rpx;
-	height: 180rpx;
-	border-radius: 24rpx;
-	position: relative;
-	margin: 0rpx 20rpx;
-	margin-bottom: 25rpx;
-	.add-img {
-		width: 100%;
-		height: 100%;
-		border-radius: 24rpx;
-	}
-}
-.add-img-camera {
-	flex: 1;
-}
-.add-img-del {
-	position: absolute;
-	width: 40rpx;
-	height: 40rpx;
-	left: 155rpx;
-	bottom: 155rpx;
-	//background-color: rgba(238, 0, 0, 1);
-	border-radius: 20rpx;
-}
-.address-time {
-	width: 484rpx;
-	height: 88rpx;
-	background-color: rgba(245, 245, 245, 1);
-	opacity: 1;
-	border-radius: 24rpx;
-	text-align: center;
-
-	font-size: 35rpx;
-	font-weight: 500;
-	color: rgba(51, 51, 51, 1);
-}
-.line {
-	width: 750rpx;
-	height: 1px;
-	transform: scaleY(0.3);
-	background-color: rgba(0, 0, 0, 0.5);
-}
-</style>

+ 0 - 74
pages/order/expressInfo.vue

@@ -1,74 +0,0 @@
-<template>
-	<view class="container">
-		<view class="express-box">
-			<view class="top-text">
-				<text class="top-com">{{expressList.com}}</text>
-				<text>{{ expressList.nu }}</text>
-			</view>
-			<view class="express-body">
-				<uni-steps :options="expressList.data" active-color="#007AFF" :active="active" direction="column"></uni-steps>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { express_query } from '@/api/order.js';
-import uniSteps from '@/components/uni-steps/uni-steps.vue';
-export default {
-	components: {
-		uniSteps
-	},
-	data() {
-		return {
-			id: '',
-			expressList: [],
-			active: 0
-		}
-	},
-	onLoad(option) {
-		this.id = option.id
-	},
-	onShow() {
-		this.loadData()
-	},
-	methods: {
-		loadData() {
-			express_query({
-				id: this.id,
-			}).then(({data}) => {
-				this.expressList = data;
-				console.log(this.expressList)
-			})
-		}
-	}
-}
-</script>
-
-<style lang="scss">
-.container {
-	padding: 40rpx;
-	.express-box {
-		border-radius: $border-radius-sm;
-		.top-text {
-			width: 100%;
-			height: 60rpx;
-			background: #FFFFFF;
-			padding-left: 20rpx;
-			font-size: $font-base;
-			border-radius: $border-radius-sm;
-			display: flex;
-			align-items: center;
-			.top-com {
-				margin-right: 10rpx;
-			}
-		}
-		.express-body {
-			margin-top: 20rpx;
-			background: #FFFFFF;
-			border-radius: $border-radius-sm;
-			padding: 20rpx 10rpx 20rpx 0;
-		}
-	}
-}
-</style>

+ 0 - 680
pages/order/order.vue

@@ -1,680 +0,0 @@
-<template>
-	<view class="content">
-		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-
-		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
-			<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>
-
-					<!-- 订单列表 -->
-					<view @click="goToOrderDetail(item)" v-for="(item, index) in tabItem.orderList" :key="index" class="order-item">
-						<view class="i-top b-b">
-							<text class="time">{{ item._add_time }}</text>
-							<text class="state" :style="{ color: item.stateTipColor }">{{ item._status._title }}</text>
-							<text v-if="item.status === 4" class="del-btn iconfont icondelete" @click="deleteOrder(index)"></text>
-						</view>
-
-						<scroll-view v-if="item.cartInfo.length > 1" class="goods-box" scroll-x>
-							<view v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex" class="goods-item">
-								<image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image>
-							</view>
-						</scroll-view>
-						<!-- <view v-if="item.cartInfo.length === 1" class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex">
-							<image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image>
-							<view class="right">
-								<text class="title clamp">{{ goodsItem.productInfo.store_name }}</text>
-								<text class="attr-box">{{ goodsItem.attrInfo ? goodsItem.attrInfo.suk : '' }} x {{ goodsItem.cart_num }}</text>
-								<text class="price">{{ moneyNum(goodsItem.productInfo.price)}}</text>
-							</view>
-						</view> -->
-						<view class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex">
-							<image class="goods-img" :src="goodsItem.productInfo.image" mode="scaleToFill"></image>
-							<view class="right">
-								<view class="flex-start">
-									<text class="title clamp">{{ goodsItem.productInfo.store_name }}</text>
-									<text class="price">{{ goodsItem.productInfo.price|moneyNum }}</text>
-								</view>
-								<view class="row flex">
-									<text class="row_title">{{ goodsItem.productInfo.attrInfo ? goodsItem.productInfo.attrInfo.suk : '' }}</text>
-									<text class="attr-box"> x {{ goodsItem.cart_num }}</text>
-								</view>
-							</view>
-						</view>
-
-						<view class="price-box">
-							共
-							<text class="num">{{ item.cartInfo.length }}</text>
-							件商品 邮费
-							<text class="price">{{ moneyNum(item.pay_postage)}}</text>
-							实付款
-							<text class="price">{{ moneyNum(item.pay_price)}}</text>
-						</view>
-						<view class="action-box b-t" v-if="item.status != 5">
-							<button v-if="item._status._title == '未支付'" class="action-btn" @click.stop="cancelOrder(item)">取消订单</button>
-							<button v-if="item._status._title == '未支付'" @click.stop="orderPay(item)" class="action-btn recom">立即支付</button>
-							<button v-if="item._status._title == '待评价'" class="action-btn">评价</button>
-							<button v-if="item._status._title == '待收货'" @click.stop="orderTake(item, index)" class="action-btn">确认收货</button>
-							<button v-if="item._status._title == '未发货'" class="action-btn" @click.stop="orderRefund(item)">申请退款</button>
-						</view>
-					</view>
-
-					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-import { orderList, orderCancel, orderDel, orderTake } from '@/api/order.js';
-export default {
-	components: {
-		uniLoadMore,
-		empty
-	},
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '待付款',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '待发货',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '待收货',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 3,
-					text: '待评价',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 4,
-					text: '已完成',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				}
-			]
-		};
-	},
-
-	onLoad(options) {
-		/**
-		 * 修复app端点击除全部订单外的按钮进入时不加载数据的问题
-		 * 替换onLoad下代码即可
-		 */
-		this.tabCurrentIndex = +options.state;
-		// #ifndef MP
-		this.loadData();
-		// #endif
-		// #ifdef MP
-		if (options.state == 0) {
-			this.loadData();
-		}
-		// #endif
-	},
-	// #ifdef APP-PLUS || H5
-	onBackPress(e){
-		uni.switchTab({
-			url: '/pages/user/user',
-		});
-		return true;
-	},
-	// #endif
-	filters: {
-		moneyNum(value){
-				return +value;
-		},
-	},
-	methods: {
-		// 转换金额为数字
-		moneyNum(value){
-				return +value;
-		},
-		// 确认收货
-		orderTake(item, index) {
-			let obj = this;
-			uni.showModal({
-				title: '是否确认收货?',
-				success: () => {
-					orderTake({
-						uni: item.order_id
-					})
-						.then(e => {
-							obj.navList[obj.tabCurrentIndex].orderList.splice(index, 1);
-							uni.showToast({
-								title: '收货成功'
-							});
-						})
-						.catch(e => {
-							console.log(e);
-						});
-				}
-			});
-		},
-		//跳转到订单详情
-		goToOrderDetail(e) {
-			uni.navigateTo({
-				url: '/pages/order/orderDetail?id=' + e.order_id
-			});
-		},
-		// 申请退款
-		orderRefund(e) {
-			uni.navigateTo({
-				url: '/pages/order/orderRefund?id=' + e.order_id
-			});
-		},
-		// 订单支付
-		orderPay(e) {
-			uni.navigateTo({
-				url: '/pages/money/pay?type=1&ordid=' + e.order_id + '&money=' + e.pay_price
-			});
-		},
-		//获取订单列表
-		loadData(source) {
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			if (navItem.loadingType === 'noMore') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-
-			orderList({
-				type: state,
-				page: navItem.page,
-				limit: navItem.limit
-			})
-				.then(({ data }) => {
-					let arr = data.map(e => {
-						let b = this.orderStateExp(e.status);
-						e.stateTip = b.stateTip;
-						e.stateTipColor = b.stateTipColor;
-						return e;
-					});
-					navItem.orderList = navItem.orderList.concat(arr);
-					// console.log(navItem.orderList);
-					navItem.page++;
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		},
-		//删除订单
-		deleteOrder(index) {
-			uni.showLoading({
-				title: '请稍后'
-			});
-			setTimeout(() => {
-				this.navList[this.tabCurrentIndex].orderList.splice(index, 1);
-				uni.hideLoading();
-			}, 600);
-		},
-		//取消订单
-		cancelOrder(item) {
-			uni.showModal({
-				title: '订单取消',
-				content: '是否取消订单?',
-				success: e => {
-					if (e.confirm) {
-						uni.showLoading({
-							title: '请稍后'
-						});
-						orderCancel({ id: item.order_id })
-							.then(e => {
-								uni.showToast({
-									title: '取消成功',
-									duration: 2000,
-									position: 'top'
-								});
-							})
-							.catch(e => {
-								console.log(e);
-							});
-						//取消订单后删除待付款中该项
-						let list = this.navList[this.tabCurrentIndex].orderList;
-						let index = list.findIndex(val => val.id === item.id);
-						index !== -1 && list.splice(index, 1);
-						uni.hideLoading();
-					}
-				}
-			});
-		},
-
-		//订单状态文字和颜色
-		orderStateExp(state) {
-			let stateTip = '',
-				stateTipColor = '#fa436a';
-			switch (+state) {
-				case 0:
-					stateTip = '待付款';
-					break;
-				case 1:
-					stateTip = '待发货';
-					break;
-				case 2:
-					stateTip = '待收货';
-					break;
-				case 3:
-					stateTip = '待评价';
-					break;
-				case 4:
-					stateTip = '已完成';
-					stateTipColor = '#5dbc7c';
-					break;
-				case 9:
-					stateTip = '订单已关闭';
-					stateTipColor = '#909399';
-					break;
-
-				//更多自定义
-			}
-			return { stateTip, stateTipColor };
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.swiper-box {
-	height: calc(100% - 40px);
-}
-.list-scroll-content {
-	height: 100%;
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
-			}
-		}
-	}
-}
-
-.uni-swiper-item {
-	height: auto;
-}
-.order-item {
-	display: flex;
-	flex-direction: column;
-	padding-left: 30rpx;
-	background: #fff;
-	margin-top: 16rpx;
-	.i-top {
-		display: flex;
-		align-items: center;
-		height: 80rpx;
-		padding-right: 30rpx;
-		font-size: $font-base;
-		color: $font-color-dark;
-		position: relative;
-		.time {
-			flex: 1;
-		}
-		.state {
-			color: $base-color;
-		}
-		.del-btn {
-			padding: 10rpx 0 10rpx 36rpx;
-			font-size: $font-lg;
-			color: $font-color-light;
-			position: relative;
-			&:after {
-				content: '';
-				width: 0;
-				height: 30rpx;
-				border-left: 1px solid $border-color-dark;
-				position: absolute;
-				left: 20rpx;
-				top: 50%;
-				transform: translateY(-50%);
-			}
-		}
-	}
-	/* 多条商品 */
-	.goods-box {
-		height: 160rpx;
-		padding: 20rpx 0;
-		white-space: nowrap;
-		.goods-item {
-			width: 120rpx;
-			height: 120rpx;
-			display: inline-block;
-			margin-right: 24rpx;
-		}
-		.goods-img {
-			display: block;
-			width: 100%;
-			height: 100%;
-		}
-	}
-	/* 单条商品 */
-	.goods-box-single {
-		display: flex;
-		padding: 20rpx 0;
-		.goods-img {
-			display: block;
-			width: 120rpx;
-			height: 120rpx;
-		}
-		.right {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			padding: 0 30rpx 0 24rpx;
-			overflow: hidden;
-			.row{
-				margin-top: 10rpx;
-			}
-			.row_title{
-				padding:5rpx 10rpx;
-				background-color: #dddddd;
-				border-radius: 10rpx;
-				font-size: 22rpx;
-				color: #ffffff;
-			}
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				line-height: 1;
-				width: 80%;
-			}
-			.attr-box {
-				display: flex;
-				justify-content: flex-end;
-				font-size: $font-sm + 2rpx;
-				color: $font-color-light;
-			}
-			.price {
-				display: inline;
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				&:before {
-					content: '¥';
-					font-size: $font-sm;
-					
-				}
-			}
-		}
-	}
-	.price-box {
-		display: flex;
-		justify-content: flex-end;
-		align-items: baseline;
-		padding: 20rpx 30rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-light;
-		.num {
-			margin: 0 8rpx;
-			color: $font-color-dark;
-		}
-		.price {
-			font-size: $font-lg;
-			color: $font-color-dark;
-			&:before {
-				content: '¥';
-				font-size: $font-sm;
-				margin: 0 2rpx 0 8rpx;
-			}
-		}
-	}
-	.action-box {
-		display: flex;
-		justify-content: flex-end;
-		align-items: center;
-		height: 100rpx;
-		position: relative;
-		padding-right: 30rpx;
-	}
-	.action-btn {
-		width: 160rpx;
-		height: 60rpx;
-		margin: 0;
-		margin-left: 24rpx;
-		padding: 0;
-		text-align: center;
-		line-height: 60rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-dark;
-		background: #fff;
-		border-radius: 100px;
-		&:after {
-			border-radius: 100px;
-		}
-		&.recom {
-			color: $base-color;
-			&:after {
-				border-color: $base-color;
-			}
-		}
-		&.evaluate {
-			color: $color-yellow;
-			&:after {
-				border-color: $color-yellow;
-			}
-		}
-	}
-}
-
-/* load-more */
-.uni-load-more {
-	display: flex;
-	flex-direction: row;
-	height: 80rpx;
-	align-items: center;
-	justify-content: center;
-}
-
-.uni-load-more__text {
-	font-size: 28rpx;
-	color: #999;
-}
-
-.uni-load-more__img {
-	height: 24px;
-	width: 24px;
-	margin-right: 10px;
-}
-
-.uni-load-more__img > view {
-	position: absolute;
-}
-
-.uni-load-more__img > view view {
-	width: 6px;
-	height: 2px;
-	border-top-left-radius: 1px;
-	border-bottom-left-radius: 1px;
-	background: #999;
-	position: absolute;
-	opacity: 0.2;
-	transform-origin: 50%;
-	animation: load 1.56s ease infinite;
-}
-
-.uni-load-more__img > view view:nth-child(1) {
-	transform: rotate(90deg);
-	top: 2px;
-	left: 9px;
-}
-
-.uni-load-more__img > view view:nth-child(2) {
-	transform: rotate(180deg);
-	top: 11px;
-	right: 0;
-}
-
-.uni-load-more__img > view view:nth-child(3) {
-	transform: rotate(270deg);
-	bottom: 2px;
-	left: 9px;
-}
-
-.uni-load-more__img > view view:nth-child(4) {
-	top: 11px;
-	left: 0;
-}
-
-.load1,
-.load2,
-.load3 {
-	height: 24px;
-	width: 24px;
-}
-
-.load2 {
-	transform: rotate(30deg);
-}
-
-.load3 {
-	transform: rotate(60deg);
-}
-
-.load1 view:nth-child(1) {
-	animation-delay: 0s;
-}
-
-.load2 view:nth-child(1) {
-	animation-delay: 0.13s;
-}
-
-.load3 view:nth-child(1) {
-	animation-delay: 0.26s;
-}
-
-.load1 view:nth-child(2) {
-	animation-delay: 0.39s;
-}
-
-.load2 view:nth-child(2) {
-	animation-delay: 0.52s;
-}
-
-.load3 view:nth-child(2) {
-	animation-delay: 0.65s;
-}
-
-.load1 view:nth-child(3) {
-	animation-delay: 0.78s;
-}
-
-.load2 view:nth-child(3) {
-	animation-delay: 0.91s;
-}
-
-.load3 view:nth-child(3) {
-	animation-delay: 1.04s;
-}
-
-.load1 view:nth-child(4) {
-	animation-delay: 1.17s;
-}
-
-.load2 view:nth-child(4) {
-	animation-delay: 1.3s;
-}
-
-.load3 view:nth-child(4) {
-	animation-delay: 1.43s;
-}
-
-@-webkit-keyframes load {
-	0% {
-		opacity: 1;
-	}
-
-	100% {
-		opacity: 0.2;
-	}
-}
-</style>

Diff do ficheiro suprimidas por serem muito extensas
+ 0 - 178
pages/order/orderDetail.vue


+ 0 - 237
pages/order/orderRefund.vue

@@ -1,237 +0,0 @@
-<template>
-	<view class="content">
-		<view class="order-item">
-			<scroll-view v-if="listStyle == 1" class="goods-box" scroll-x>
-				<view v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex" class="goods-item">
-					<image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image>
-				</view>
-			</scroll-view>
-			<view v-if="listStyle == 2" class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex">
-				<image class="goods-img" :src="goodsItem.productInfo.image" mode="aspectFill"></image>
-				<view class="right">
-					<text class="title clamp">{{ goodsItem.productInfo.store_name }}</text>
-					<text class="attr-box">{{ goodsItem.attrInfo ? goodsItem.attrInfo.suk : '' }} x {{ goodsItem.cart_num }}</text>
-					<text class="price">{{ goodsItem.productInfo.price }}</text>
-				</view>
-			</view>
-		</view>
-		<view class="orderDetial">
-			<view class="row b-b flex">
-				<text class="tit">订单总价</text>
-				<view class="input">¥{{ item.total_price }}</view>
-			</view>
-			<view class="row b-b flex">
-				<text class="tit">邮费</text>
-				<view class="input">{{ item.pay_postage > 0 ? '¥' +item.pay_postage : '免邮费' }}</view>
-			</view>
-			<view class="row b-b flex" v-if="item.coupon_id > 0">
-				<text class="tit">优惠券</text>
-				<view class="input">-¥{{ item.coupon_price }}</view>
-			</view>
-			<view class="row b-b flex" v-if="item.use_integral > 0">
-				<text class="tit">积分抵扣</text>
-				<view class="input">-¥{{ item.use_integral }}</view>
-			</view>
-			<view class="row b-b flex">
-				<text class="tit ">实付</text>
-				<view class="input payColor">¥{{ item.pay_price }}</view>
-			</view>
-		</view>
-		<view class="row b-b">
-			<text class="tit">退款理由</text>
-			<picker mode="selector" :range="value" @change="bindChange">
-				<view class="refund" v-if="refund">{{ refund || '请选择退款理由' }}</view>
-				<view class="noRefund" v-else>请选择退款理由</view>
-			</picker>
-		</view>
-		<view class="row b-b">
-			<text class="tit">备注说明</text>
-			<input class="input" type="text" v-model="reason" placeholder="请填写备注" placeholder-class="placeholder" />
-		</view>
-		<button class="add-btn" @click="confirm">提交</button>
-	</view>
-</template>
-
-<script>
-import { refund, refundReason, orderDetail } from '@/api/order.js';
-export default {
-	data() {
-		return {
-			refund: '', //退款理由
-			reason: '', //备注
-			value: ['1', '2', '3', '4', '5', '6', '7', '8', 9, 10, 11, 12, 13],
-			orderId: '',
-			item: {},
-			listStyle: 2
-		};
-	},
-	onLoad(option) {
-		this.orderId = option.id;
-		this.refundReason();
-		this.loadOrder();
-	},
-	methods: {
-		// 切换选中事件
-		bindChange(e) {
-			this.refund = this.value[e.detail.value];
-		},
-		// 加载退款理由
-		refundReason() {
-			refundReason({}).then(e => {
-				this.value = e.data;
-			});
-		},
-		loadOrder() {
-			orderDetail({}, this.orderId).then(e => {
-				this.item = e.data;
-			});
-		},
-		//提交
-		confirm() {
-			if (!obj.refund) {
-				uni.showModal({
-					title: '错误',
-					content: '请填写退货理由',
-					showCancel: false
-				});
-				return false;
-			}
-			let obj = this;
-			refund({
-				text: obj.refund,
-				uni: obj.orderId,
-				refund_reason_wap_explain: obj.reason
-			}).then(function(e) {
-				uni.showToast({
-					title:'提交成功',
-					duration:1500
-				})
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-	padding-top: 16rpx;
-}
-.orderDetial {
-	.row {
-		.input {
-			text-align: right;
-		}
-	}
-}
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
-	.refund {
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.noRefund {
-		font-size: 30rpx;
-		color: $font-color-light;
-		padding-left: 20rpx;
-	}
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
-		padding-left: 20rpx;
-		&.payColor {
-			color: $color-red;
-		}
-	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 60rpx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-/* 多条商品 */
-.order-item {
-	display: flex;
-	flex-direction: column;
-	padding-left: 30rpx;
-	background: #fff;
-	margin-top: 16rpx;
-	.goods-box {
-		height: 160rpx;
-		padding: 20rpx 0;
-		white-space: nowrap;
-		.goods-item {
-			width: 120rpx;
-			height: 120rpx;
-			display: inline-block;
-			margin-right: 24rpx;
-		}
-		.goods-img {
-			display: block;
-			width: 100%;
-			height: 100%;
-		}
-	}
-	/* 单条商品 */
-	.goods-box-single {
-		display: flex;
-		padding: 20rpx 0;
-		.goods-img {
-			display: block;
-			width: 120rpx;
-			height: 120rpx;
-		}
-		.right {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			padding: 0 30rpx 0 24rpx;
-			overflow: hidden;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				line-height: 1;
-			}
-			.attr-box {
-				font-size: $font-sm + 2rpx;
-				color: $font-color-light;
-				padding: 10rpx 12rpx;
-			}
-			.price {
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				&:before {
-					content: '¥';
-					font-size: $font-sm;
-					margin: 0 2rpx 0 8rpx;
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 204
pages/product/classify.vue

@@ -1,204 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 头部轮播 -->
-		<view class="carousel-section">
-			<swiper class="carousel" autoplay="true" duration="400" interval="5000">
-				<swiper-item v-for="(item, index) in bannerImg" :key="index" class="carousel-item" @click="bannerNavToUrl(item)">
-					<image :src="item.img" mode=" scaleToFill" />
-				</swiper-item>
-			</swiper>
-		</view>
-		<view class="type-title-box flex">
-			<view class="title-border"></view>
-			<view class="title-content">
-				<text v-if="type == 1">精品推荐</text>
-				<text v-if="type == 2">热门榜单</text>
-				<text v-if="type == 3">首发新品</text>
-				<text v-if="type == 4">促销单品</text>
-			</view>
-			<view class="title-border"></view>
-		</view>
-
-		<view class="goodsList-box">
-			<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in list">
-				<image :src="ls.image" mode=" scaleToFill"></image>
-				<view class="goodsList-content">
-					<view class="title">
-						<text>{{ ls.store_name }}</text>
-					</view>
-					<view class="goods-money flex">
-						<view class="money-box">
-							<view class="money">
-								<text class="font-size-sm">¥</text>
-								{{ ls.price }}
-							</view>
-							<view class="otMoney-box">
-								<text class="otMoney">¥{{ ls.ot_price }}</text>
-								<text class="sales">已售{{ ls.sales }}件</text>
-							</view>
-						</view>
-						<view @click="navTo(ls)" class="cart iconfont iconcart"></view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { groomList } from '@/api/product.js';
-export default {
-	data() {
-		return {
-			list: [],
-			bannerImg: []
-		};
-	},
-	onLoad(option) {
-		// 获取查询对象
-		this.type = option.type;
-		// 加载基础数据
-		this.loadData();
-	},
-	methods: {
-		navTo: function(ls) {
-			uni.navigateTo({
-				url: '/pages/product/product?id=' + ls.id
-			});
-		},
-		// 请求载入数据
-		async loadData() {
-			groomList({}, this.type)
-				.then(({ data }) => {
-					// 保存轮播图
-					this.bannerImg = data.banner;
-					// 保存商品信息
-					this.list = data.list;
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 轮播图跳转
-		bannerNavToUrl(item) {
-			// #ifdef H5
-			if (item.wap_link.indexOf('http') > 0) {
-				window.location.href = item.wap_link;
-			}
-			// #endif
-			if (item.wap_link) {
-				uni.navigateTo({
-					url: item.wap_link
-				});
-			}
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-}
-.carousel-section {
-	padding: 0;
-	.titleNview-placing {
-		padding-top: 0;
-		height: 0;
-	}
-	.swiper-dots {
-		left: 45rpx;
-		bottom: 40rpx;
-	}
-	.carousel {
-		width: 100%;
-		height: 360rpx;
-		.carousel-item {
-			width: 100%;
-			height: 100%;
-			overflow: hidden;
-		}
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-}
-// 中间标题样式
-.type-title-box {
-	padding: 40rpx;
-	.title-content {
-		height: 100%;
-		width: 200rpx;
-		text-align: center;
-		font-size: $font-lg;
-		font-weight: 500;
-		color: $font-color-dark;
-	}
-	.title-border {
-		width: 250rpx;
-		height: 2rpx;
-		background-color: #e9e9e9;
-	}
-}
-// 商品列表
-.goodsList-box {
-	.goodsList-item {
-		margin-bottom: 40rpx;
-		background-color: #ffffff;
-		padding: 30rpx;
-		image {
-			flex-shrink: 0;
-			border-radius: $border-radius-sm;
-			height: 180rpx;
-			width: 180rpx;
-		}
-		.goodsList-content {
-			margin-left: 20rpx;
-			flex-grow: 1;
-			height: 180rpx;
-			position: relative;
-			.title {
-				font-size: $font-base;
-				color: $font-color-dark;
-				font-weight: 500;
-			}
-			.goods-money {
-				position: absolute;
-				left: 0;
-				bottom: 0;
-				width:100%;
-				.money-box {
-					.money {
-						font-size: $font-lg;
-						color: $color-red;
-						font-weight: bold;
-					}
-					.otMoney-box {
-						font-size: $font-sm;
-						.otMoney {
-							color: $font-color-dark;
-							padding-right: 20rpx;
-						}
-						.sales {
-							color: $font-color-light;
-						}
-					}
-				}
-				.cart {
-					border: 1px solid $color-red;
-					color: $color-red;
-					font-size: $font-base;
-					font-weight: bold;
-					border-radius: 99px;
-					width: 55rpx;
-					height: 55rpx;
-					display: flex;
-					justify-content: center;
-					align-items: center;
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 148
pages/product/common/KlonContent.vue

@@ -1,148 +0,0 @@
-<template>
-	<view class="introduce-section">
-		<text class="title clamp">{{ goodsObjact.title }}</text>
-		<!-- <button open-type="share" class="shareDate">
-			<image class="share-img" src="/static/img/img57.png"></image>
-			好物推荐
-		</button> -->
-		<text class="info" v-if="goodsObjact.store_info">{{ goodsObjact.store_info }}</text>
-		<view class="progress-box">
-			<progress :percent="goodsObjact.percent | parseIntTo" activeColor="#F65527" font-size="10" show-info border-radius="5" stroke-width="9" />
-			<view class="number">剩余{{ goodsObjact.percent | parseIntTo }}%</view>
-		</view>
-		<view class="price-box">
-			<text class="price-tip">¥</text>
-			<view class="price">
-				{{ goodsObjact.price }}
-				<text class="text">/份</text>
-				<text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text>
-			</view>
-		</view>
-		<!-- <view class="price-green">
-			¥{{ goodsObjact.ot_price }}
-			<text>市场价</text>
-		</view> -->
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		goodsObjact: {
-			type: Object,
-			default: function() {
-				return {
-					percent:1
-				};
-			}
-		}
-	},
-	filters: {
-		parseIntTo(percent) {
-			percent = +percent * 100;
-			if (percent % 1 === 0) {
-				return percent;
-			} else {
-				percent = percent.toFixed(1);
-				return percent;
-			}
-		}
-	},
-	data() {
-		return {};
-	}
-};
-</script>
-
-<style lang="scss">
-/* 标题简介 */
-.introduce-section {
-	position: relative;
-	background: #fff;
-	padding: 35rpx 0rpx;
-	padding-left: 35rpx;
-	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
-		height: 50rpx;
-		width: 70%;
-		.tip-o {
-			color: #ff3334;
-			padding-left: 15rpx;
-		}
-	}
-	.shareDate {
-		position: absolute;
-		top: 25rpx;
-		right: 25rpx;
-		font-size: 26rpx;
-		color: #3d3f46;
-		border-radius: 15rpx;
-		background-color: #ffffff;
-		height: 60rpx;
-		line-height: 60rpx;
-	}
-	.share-img {
-		width: 30rpx;
-		height: 30rpx;
-		position: relative;
-		top: 5rpx;
-		left: 0;
-		margin-right: 10rpx;
-	}
-	.info {
-		color: #999999;
-		font-size: 26rpx;
-		padding-bottom: 15rpx;
-	}
-	.progress-box {
-		width: 260rpx;
-		position: relative;
-		margin-top: 15rpx;
-		line-height: 10px;
-		.number {
-			font-size: 17rpx;
-			position: absolute;
-			z-index: 99;
-			top: 3rpx;
-			left: 15rpx;
-			color: #ffffff;
-		}
-	}
-	.price-box {
-		display: flex;
-		align-items: baseline;
-		height: 64rpx;
-		padding: 10rpx 0;
-		font-size: 26rpx;
-		color: $uni-color-primary;
-	}
-	.price {
-		font-size: $font-lg + 6rpx;
-		.text {
-			padding-left: 5rpx;
-			color: #b0b0b0;
-			font-size: 22rpx !important;
-		}
-	}
-	.price-green {
-		color: #2dbd59;
-		font-size: 28rpx !important;
-		text {
-			background: #2dbd59;
-			color: #ffffff;
-			padding: 0rpx 10rpx;
-			border-radius: 5rpx;
-			font-size: 22rpx !important;
-			margin-left: 15rpx;
-		}
-	}
-	.m-price {
-		margin: 0 12rpx;
-		color: $font-color-light;
-		text-decoration: line-through;
-		margin-left: 25rpx;
-		font-size: 24rpx;
-	}
-}
-</style>

+ 0 - 68
pages/product/common/contentText.vue

@@ -1,68 +0,0 @@
-<template>
-	<view class="detail-desc">
-		<view class="d-header"><text>图文详情</text></view>
-		<rich-text class="detail-centent" :nodes="description"></rich-text>
-		<!-- 底部高度撑开 -->
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		description: {
-			default: ''
-		},
-	},
-	data() {
-		return {
-			
-		};
-	},
-};
-</script>
-
-<style lang="scss">
-	/*  详情 */
-	.detail-desc {
-		margin-top: 14rpx;
-		background: #fff;
-		/deep/ img {
-			max-width: 100% !important;
-			display: inline !important;
-		}
-		/deep/ div {
-			max-width: 100% !important;
-		}
-		.d-header {
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			height: 80rpx;
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			position: relative;
-	
-			text {
-				padding: 0 20rpx;
-				background: #fff;
-				position: relative;
-				z-index: 1;
-			}
-			&:after {
-				position: absolute;
-				left: 50%;
-				top: 50%;
-				transform: translateX(-50%);
-				width: 300rpx;
-				height: 0;
-				content: '';
-				border-bottom: 1px solid #ccc;
-			}
-		}
-	}
-	/* 商品详情中限制图片大小 */
-	/deep/ .rich-img {
-		width: 100% !important;
-		height: auto;
-	}
-</style>

+ 0 - 139
pages/product/common/discounts.vue

@@ -1,139 +0,0 @@
-<template>
-	<view class="c-list">
-		<view class="c-row b-b">
-			<text class="tit">配送</text>
-			<view class="bz-list con" v-if="!mark">立即下单 ,预计最快第二天8.30-9:30送达</view>
-			<view class="bz-list con reding" v-else>{{mark}}</view>
-		</view>
-		<view v-if="showCoupon" class="c-row b-b" @click="Getcoupon">
-			<text class="tit">优惠券</text>
-			<text class="con t-r red">领取优惠券</text>
-			<text class="iconfont iconenter"></text>
-		</view>
-		<view class="c-row b-b">
-			<text class="tit">简介</text>
-			<view class="bz-list con">
-				<text>{{ Info }}</text>
-				<!-- <text>{{ copy2 }}</text> -->
-
-			</view>
-			<view class="copy-btn" @click="copy">一键复制</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			showCoupon: {
-				type: Boolean,
-				default: false
-			},
-			mark: {
-				default: ''
-			},
-			Info: {
-				default: ''
-			},
-		},
-		data() {
-			return {
-				copy1: '食材质检 ·',
-				copy2: '无接触配送到门口'
-			};
-		},
-		methods: {
-			Getcoupon() {
-				this.$emit('clickCoupon')
-			},
-			copy() {
-				// let copyText = this.copy1 + ' ' + this.copy2;
-				console.log(this.Info)
-				uni.setClipboardData({
-					//去找上面的数据
-					data: this.Info,
-					success: function(res) {
-						uni.showToast({
-							title: '复制成功',
-						});
-					},
-					fail: function(res) {
-					}
-				});
-			}
-		}
-	};
-</script>
-
-<style lang="scss">
-	.c-list {
-		font-size: $font-sm + 2rpx;
-		color: $font-color-base;
-		background: #fff;
-
-		.title {
-			color: #333333;
-			font-size: 32rpx;
-			font-weight: bold;
-		}
-
-		.c-row {
-			display: flex;
-			align-items: center;
-			padding: 20rpx 30rpx;
-			position: relative;
-		}
-
-		.tit {
-			width: 140rpx;
-		}
-
-		.con {
-			flex: 1;
-			color: $font-color-dark;
-
-			.selected-text {
-				margin-right: 10rpx;
-			}
-		}
-
-		.reding {
-			color: #FF0815 !important;
-		}
-
-		.bz-list {
-			height: 40rpx;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-dark;
-			overflow: hidden;
-			text-overflow: ellipsis;
-			white-space: nowrap;
-			
-			text {
-				display: inline-block;
-				margin-right: 30rpx;
-				overflow: hidden;
-				text-overflow: ellipsis;
-				white-space: nowrap;
-				width: 100%;
-			}
-		}
-
-		.copy-btn {
-			background-color: #F3F3F2;
-			padding: 8rpx 20rpx;
-			border-radius: 10rpx;
-			color: #040406;
-		}
-
-		.red {
-			color: #fb6d24;
-		}
-	}
-
-	/* 商品详情中限制图片大小 */
-	.rich-img {
-		width: 100% !important;
-		height: auto;
-	}
-</style>

+ 0 - 115
pages/product/common/estimate.vue

@@ -1,115 +0,0 @@
-<template>
-	<view class="eva-section" @click="navTo">
-		<view class="e-header">
-			<text class="tit">评价</text>
-			<text>({{ list.replyCount }})</text>
-			<text class="tip">好评率 {{ list.replyChance }}%</text>
-			<text class="iconfont iconenter"></text>
-		</view>
-		<view class="eva-box">
-			<image class="portrait" :src="reply.avatar" mode="aspectFill"></image>
-			<view class="right">
-				<text class="name">{{ reply.nickname }}</text>
-				<text class="con">{{ reply.comment }}</text>
-				<view class="con_box">
-					<view class="con_image" v-for="item in reply.pics"><image :src="item"></image></view>
-				</view>
-				<view class="bot">
-					<text class="attr"></text>
-					<text class="stime">{{ reply.add_time }}</text>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		list: {
-			default: ''
-		},
-		reply: {
-			default: ''
-		},
-	},
-	data() {
-		return {
-		};
-	},
-	methods: {
-		navTo() {
-			this.$emit('navTo')
-		}
-	},
-};
-</script>
-
-<style lang="scss">
-/* 评价 */
-.eva-section {
-	display: flex;
-	flex-direction: column;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	margin-top: 16rpx;
-	.e-header {
-		display: flex;
-		align-items: center;
-		height: 70rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-light;
-		.tit {
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			margin-right: 4rpx;
-		}
-		.tip {
-			flex: 1;
-			text-align: right;
-		}
-		.iconenter {
-			margin-left: 10rpx;
-		}
-	}
-	.eva-box {
-		display: flex;
-		padding: 20rpx 0;
-		.portrait {
-			flex-shrink: 0;
-			width: 80rpx;
-			height: 80rpx;
-			border-radius: 100px;
-		}
-		.right {
-			flex: 1;
-			display: flex;
-			flex-direction: column;
-			font-size: $font-base;
-			color: $font-color-base;
-			padding-left: 26rpx;
-			.con {
-				font-size: $font-base;
-				color: $font-color-dark;
-				padding: 20rpx 0;
-			}
-			.bot {
-				display: flex;
-				justify-content: space-between;
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-	.con_image {
-		width: 130rpx;
-		height: 130rpx;
-		display: inline-block;
-		padding: 15rpx;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-}
-</style>

+ 0 - 85
pages/product/common/freshDetail.vue

@@ -1,85 +0,0 @@
-<template>
-	<view class="c-list" v-if="goodsObjact.net_quantity||goodsObjact.storage_condition||goodsObjact.expiration_date">
-		<view class="c-row title b-b">规格</view>
-		<view class="c-row b-b" v-if="goodsObjact.net_quantity">
-			<text class="tit">净含量</text>
-			<text class="con t-r">{{ goodsObjact.net_quantity }}</text>
-		</view>
-		<view class="c-row b-b" v-if="goodsObjact.storage_condition">
-			<text class="tit">保存条件</text>
-			<text class="con t-r">{{ goodsObjact.storage_condition }}</text>
-		</view>
-		<view class="c-row b-b" v-if="goodsObjact.expiration_date">
-			<text class="tit">保质期</text>
-			<text class="con t-r">{{ goodsObjact.expiration_date }}</text>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		goodsObjact: {
-			type: Object,
-			default: function () {
-				return {
-					
-				}
-			}
-		},
-	},
-	data() {
-		return {
-			
-		};
-	},
-};
-</script>
-
-<style lang="scss">
-.c-list {
-	font-size: $font-sm + 2rpx;
-	color: $font-color-base;
-	background: #fff;
-	.title {
-		color: #333333;
-		font-size: 32rpx;
-		font-weight: bold;
-	}
-	.c-row {
-		display: flex;
-		align-items: center;
-		padding: 20rpx 30rpx;
-		position: relative;
-	}
-	.tit {
-		width: 140rpx;
-	}
-	.con {
-		flex: 1;
-		color: $font-color-dark;
-		.selected-text {
-			margin-right: 10rpx;
-		}
-	}
-	.bz-list {
-		height: 40rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-dark;
-		text {
-			display: inline-block;
-			margin-right: 30rpx;
-		}
-	}
-	.con-list {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		color: $font-color-dark;
-		line-height: 40rpx;
-	}
-	.red {
-		color: #fb6d24;
-	}
-}
-</style>

+ 0 - 155
pages/product/common/groupBottom.vue

@@ -1,155 +0,0 @@
-<template>
-	<view class="goods-pay-box ">
-		<view class="goods-pay-buttom flex" v-if="!seckillObj.stop">
-			<view class="goods-pay bg-pinks">
-			<!-- 	<view class="goods-pay-o flex">
-					<view class="title">本单发起人奖金</view>
-					<view class="money">{{peopleMoney}}元</view>
-				</view>
-				<view class="goods-pay-t">
-					本单销售额佣金
-					<text>?%</text>
-				</view> -->
-				发起拼团得奖金
-			</view>
-			<!-- 单规格 -->
-			<view class="goods-pay bg-danger" v-if="many == 1" @click="buy(1)"><view class="goods-buttom">一键开团</view></view>
-			<!-- 多规格 -->
-			<view class="goods-pay bg-danger" v-else @click="buys"><view class="goods-buttom">一键开团</view></view>
-		</view>
-		<view class="goods-pay-stop" v-else>活动已结束</view>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		peoplePrize: {
-			default:0
-		},
-		seckillObj: {
-			type: Object,
-			default: function() {
-				return {
-					stopTime: 0, //结束时间
-					stop: false, //是否结束
-					stopTimeH: 0, //小时
-					stopTimeM: 0, //分钟
-					stopTimeS: 0 //秒钟
-				};
-			}
-		},
-		many:{
-			default:9
-		}
-	},
-	computed: {
-		peopleMoney() {
-			return +this.peoplePrize 
-		}
-	},
-	data() {
-		return {};
-	},
-	methods: {
-		buy(ls) {
-			this.$emit('buy', ls);
-		},
-		buys(){
-			this.$emit('specOPne');
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-// 底部拼团、秒杀支付按钮
-.goods-pay-box {
-	position: fixed;
-	left: 0;
-	bottom: 0;
-	z-index: 99;
-	width: 100%;
-	height: 100rpx;
-	line-height: 1;
-	color: #ffffff;
-	padding: 10rpx 30rpx;
-	text-align: center;
-	font-size: $font-lg;
-	background-color: #ffffff;
-	.goods-pay-buttom {
-		overflow: hidden;
-		border-radius: 99rpx;
-		height: 100%;
-	}
-	.bgLine {
-		background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%);
-	}
-	// 拼团支付按钮
-	.goods-pay {
-		display: flex;
-		align-content: center;
-		flex-wrap: wrap;
-		justify-content: center;
-		height: 100rpx;
-		font-size: 22rpx;
-		.goods-buttom {
-			font-size: 35rpx;
-			width: 100%;
-		}
-
-		&.bg-danger {
-			// background:linear-gradient(14deg,rgba(254,107,38,1),rgba(255,50,40,1));
-			background: linear-gradient(270deg, #5dbc7c 0%, #5dbc7c 100%);
-		}
-		.goods-pay-o {
-			border: 1px solid #ddffdf;
-			.title {
-				background:linear-gradient(14deg,rgba(254,107,38,1),rgba(255,50,40,1));
-				padding: 5rpx 10rpx;
-				border-radius: 5rpx;
-				line-height: 1;
-				flex-shrink: 0;
-			}
-			.money {
-				padding: 5rpx 10rpx;
-				color: #ff0919;
-				flex-grow: 1;
-			}
-		}
-		.goods-pay-t {
-			padding: 5rpx 10rpx;
-			color: #ff0919;
-			text {
-				padding: 5rpx 10rpx;
-				color: rgba(249, 220, 221, 1);
-			}
-		}
-		.goods-pay-o,
-		.goods-pay-t {
-			width: 260rpx;
-			border-radius: 5rpx;
-			background-color: #fff5f4;
-			border: 1px solid #f9dcdd;
-		}
-	}
-	.bg-pinks {
-		// background: linear-gradient(90deg, #f9dcdd, #feeeee);
-		background: #ddffdf;
-		// color: #FD1A2B !important;
-		color: #5dbc7c;
-		font-size: 32rpx !important;
-		font-weight: bold;
-	}
-	.goods-pay-stop,
-	.goods-pay {
-		padding: 15rpx 0;
-		height: 100%;
-		width: 100%;
-	}
-	.goods-pay-stop {
-		background: $color-gray;
-		line-height: 70rpx;
-	}
-}
-</style>

+ 0 - 148
pages/product/common/groupContent.vue

@@ -1,148 +0,0 @@
-<template>
-	<view class="introduce-section">
-		<text class="title clamp">
-			{{goodsObjact.title}}
-			<!-- <text class="tip-o">截单后8小时到货</text> -->
-		</text>
-		<!-- <button open-type="share" class="shareDate flex_item">
-			<image class="share-img" src="/static/img/img085.png"></image>
-			<view class="name">分享</view>
-		</button> -->
-		<!-- <view class="progress-box">
-			<progress :percent="goodsObjact.percent | parseIntTo" activeColor="#F65527" font-size="10" show-info border-radius="5" stroke-width="9" />
-			<view class="number">剩余{{ goodsObjact.percent | parseIntTo }}%</view>
-		</view> -->
-		<view class="old_price" v-if="goodsObjact.pink_type == '达人团'">
-			¥{{ goodsObjact.product_price }}
-		</view>
-		<text class="info" v-if="goodsObjact.store_info">{{ goodsObjact.store_info }}</text>
-		<!-- <view class="price-green">
-			¥{{ goodsObjact.product_price }}
-			<text>市场价</text>
-		</view> -->
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		goodsObjact: {
-			type: Object,
-			default: function() {
-				return {
-					store_info: '',
-					ot_price: ''
-				};
-			}
-		}
-	},
-	data() {
-		return {};
-	},
-	filters: {
-		parseIntTo(percent) {
-			percent = +percent * 100;
-			if (percent % 1 === 0) {
-				return percent;
-			} else {
-				percent = percent.toFixed(1);
-				return percent;
-			}
-		}
-	},
-	methods: {
-		Getcoupon() {
-			this.$emit('click');
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-/* 标题简介 */
-.introduce-section {
-	position: relative;
-	background: #fff;
-	padding: 35rpx 0rpx;
-	padding-left: 35rpx;
-	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
-		height: 50rpx;
-		width: 70%;
-		font-weight: bold;
-		.tip-o {
-			color: #ff3334;
-			padding-left: 15rpx;
-			font-size: 25rpx;
-		}
-	}
-	.shareDate {
-		padding: 15rpx 25rpx;
-		padding-bottom: 25rpx !important;
-		position: absolute;
-		top: 25rpx;
-		right: 0rpx;
-		font-size:30rpx;
-		color: #3d3f46;
-		border-bottom-left-radius: 25rpx;
-		border-top-left-radius: 25rpx;
-		background-color: #ffffff;
-		height: 60rpx;
-		background-color:#F2FEE6;
-		border: none !important;
-	}
-	uni-button:after{
-		border: none !important;
-	}
-	.share-img {
-		width: 45rpx;
-		height: 45rpx;
-		position: relative;
-		top: 5rpx;
-		left: 0;
-		margin-right: 10rpx;
-	}
-	.name{
-		position: relative;
-		top: 5rpx;
-	}
-	.progress-box {
-		width: 260rpx;
-		position: relative;
-		margin-top: 15rpx;
-		line-height: 10px;
-		.number {
-			font-size: 17rpx;
-			position: absolute;
-			z-index: 999;
-			top: 3rpx;
-			left: 15rpx;
-			color: #ffffff;
-		}
-	}
-	.old_price {
-		margin-top: 10rpx;
-		font-size: $font-base;
-		text-decoration: line-through;
-		color: #7a7a7a;
-	}
-	.info {
-		color: #999999;
-		font-size: 26rpx;
-		padding-bottom: 15rpx;
-	}
-	.price-green {
-		color: #2dbd59;
-		font-size: 28rpx !important;
-		text {
-			background: #2dbd59;
-			color: #ffffff;
-			padding: 0rpx 10rpx;
-			border-radius: 5rpx;
-			font-size: 22rpx !important;
-			margin-left: 15rpx;
-		}
-	}
-}
-</style>

+ 0 - 195
pages/product/common/groupTime.vue

@@ -1,195 +0,0 @@
-<template>
-	<view class="introduce-section seckill-box-title">
-		<view class="title flex" style="width: 100%;">
-			<view class="title-left flex">
-				<view class="title-box flex_item">
-					<view class="title-o">
-						<view class="price-tip flex">
-							<view class="tip-info">¥</view>
-							<text class="price">{{ goodsObjact.price }}</text>
-						</view>
-					</view>
-					<view class="title-t">
-						<view class="peice-out"></view>
-						<view class="num">{{ goodsObjact.people }}人起团</view>
-					</view>
-				</view>
-				<view class="group flex">
-					<image src="/static/img/img064.png"></image>
-					<view class="text">{{goodsObjact.pink_type}}</view>
-				</view>
-			</view>
-			<view class="timeStop">
-				<view class="item">
-					<view class="timeStop-name">距离结束</view><!-- #FF3334 -->
-					<uni-countdown
-						class="timeBox"
-						color="#ffffff"
-						background-color="#5dbc7c"
-						splitor-color="#000000"
-						:show-day="false"
-						:hour="seckillObj.stopTimeH+(seckillObj.stopTimeD*24)"
-						:minute="seckillObj.stopTimeM"
-						:second="seckillObj.stopTimeS"
-					></uni-countdown>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
-export default {
-	components: {
-		uniCountdown
-	},
-	props: {
-		goodsObjact: {
-			type: Object,
-			default: function() {
-				return {
-					price: 0,
-					product_price: 0,
-					people: 0
-				};
-			}
-		},
-		seckillObj: {
-			type: Object,
-			default: function() {
-				return {
-					stopTime: 0, //结束时间
-					stop: false, //是否结束
-					stopTimeH: 0, //小时
-					stopTimeM: 0, //分钟
-					stopTimeS: 0, //秒钟
-					stopTimeD: 0, //秒钟
-					upTime: 0
-				};
-			}
-		}
-	},
-	data() {
-		return {};
-	}
-};
-</script>
-
-<style lang="scss">
-/* 标题简介 */
-.introduce-section {
-	position: relative;
-	background: #fff;
-	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
-		.tip-o {
-			color: #ff3334;
-			padding-left: 15rpx;
-		}
-		.title-left {
-			padding: 15rpx;
-			width: 560rpx;
-		}
-	}
-	.title-box {
-		color: #ffffff;
-		.title-o {
-			.price {
-				font-size: 65rpx !important;
-				position: relative;
-				top: 8rpx;
-			}
-		}
-		.title-t {
-			font-size: 24rpx !important;
-			position: relative;
-			bottom: 10rpx;
-			padding-left: 10rpx;
-			top: 10rpx;
-			.peice-out {
-				text-decoration: line-through;
-			}
-			.num {
-				margin-top: 10rpx;
-				background-color: #ffffff;
-				color: #ff3a56;
-				border-radius: 8rpx;
-				padding: 0 5rpx ;
-				float: left;
-			}
-		}
-	}
-	.group {
-		color: #ffffff;
-		position: relative;
-		top: 8rpx;
-		image {
-			width: 55rpx;
-			height: 45rpx;
-		}
-		.text {
-			font-size: 40rpx !important;
-			padding-left: 10rpx;
-		}
-	}
-	.timeStop {
-		// background-color: #feeeee;
-		background: #ddffdf;
-		height: 120rpx;
-		padding: 0 10rpx;
-		position: relative;
-		width: 0;
-		flex-grow: 1;
-		.timeStop-name {
-			padding-top: 15rpx;
-			text-align: center;
-			// color: #ff3334;
-			color:#5dbc7c;
-			font-size: 20rpx;
-		}
-		.timeBox {
-			// margin-left: -10rpx;
-			position: absolute;
-			top: 50rpx;
-		}
-		.item{
-			height: 120rpx;
-			width: 0;
-			min-width: 100%;
-			position: relative;
-		}
-	}
-	.share-img {
-		width: 30rpx;
-		height: 30rpx;
-		position: relative;
-		top: 5rpx;
-		left: 0;
-		margin-right: 10rpx;
-	}
-}
-.seckill-box-title {
-	// background:linear-gradient(14deg,rgba(254,107,38,1),rgba(255,50,40,1)) !important;
-	background: linear-gradient(270deg, #5dbc7c 0%, #5dbc7c 100%) !important;
-	.price,
-	.m-price {
-		color: #ffffff !important;
-	}
-	.price-tip {
-		font-size: $font-base;
-		color: #ffffff !important;
-	}
-	.tip-info{
-		position: relative;
-		top:18rpx;
-		font-size: 32rpx !important;
-		padding-right: 8rpx;
-	}
-	.price {
-		font-size: 45rpx !important;
-		font-weight: bold;
-	}
-}
-</style>

+ 0 - 120
pages/product/common/guessLike.vue

@@ -1,120 +0,0 @@
-<template>
-	<view class="guess-item">
-		<view class="guess">猜你喜欢</view>
-		<view class="guess-scroll flex_item" scroll-x>
-			<view class="scroll-list" v-for="ls in goodList" @click="navToDetailPage(ls)">
-				<view class="scoll-img"><image :src="ls.image"></image></view>
-				<view class="scoll-name ellipsis">{{ ls.store_name }}</view>
-				<view class="price-list flex">
-					<view class="tpl">
-						<view class="red-price">
-							¥
-							<text>{{ ls.price }}</text>
-						</view>
-						<view class="grey-price">¥{{ ls.ot_price }}</view>
-					</view>
-					<view class="img position-relative" @click.stop="Addcar(ls)">
-						<image src="/static/img/img13.png"></image>
-						<view class="corner" v-if="ls.cart_num > 0">
-							<text>{{ ls.cart_num }}</text>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		goodList: {
-			type: Array,
-			default: function () {
-				return []
-			}
-		},
-	},
-	methods: {
-		// 跳转到详情页
-		navToDetailPage(ls){
-			this.$emit('clickNavTo',ls)
-		},
-		// 加入购物车
-		Addcar(ls){
-			this.$emit('Addcar',ls)
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-//猜你喜欢
-.guess-item {
-	padding: 25rpx 25rpx;
-	background: #ffffff;
-	margin-bottom: 15rpx;
-	padding-bottom: 45rpx !important;
-	.guess {
-		color: #000000;
-		font-size: 35rpx;
-		font-weight: 500;
-		padding-bottom: 25rpx;
-	}
-	.guess-scroll {
-		width: 100%;
-		font-size: 24rpx;
-		overflow: hidden;
-		overflow-x: auto;
-		justify-content: flex-start;
-		.scroll-list {
-			border: 2rpx solid #f0f0f0;
-			border-radius: 25rpx;
-			margin-right: 15rpx;
-			.scoll-img {
-				width: 227rpx;
-				border-top-right-radius: 25rpx;
-				border-top-left-radius: 25rpx;
-				height: 227rpx;
-				overflow: hidden;
-				image {
-					width: 100%;
-					height: 100%;
-				}
-			}
-			.scoll-name {
-				height: 80rpx;
-				width: 227rpx;
-				font-size: 22rpx;
-				padding: 15rpx 15rpx;
-			}
-			.price-list {
-				padding: 25rpx 15rpx;
-				padding-right: 25rpx;
-				.tpl {
-					.red-price {
-						color: #f31d29;
-						text {
-							font-size: 35rpx !important;
-							font-weight: bold;
-						}
-					}
-					.grey-price {
-						text-decoration: line-through;
-						color: #999999;
-						font-size: 10px !important;
-					}
-				}
-				.img {
-					width: 45rpx;
-					height: 45rpx;
-					image {
-						width: 100%;
-						height: 100%;
-					}
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 68
pages/product/common/klonButtom.vue

@@ -1,68 +0,0 @@
-<template>
-	<view class="klon-buttom">
-		<view class="klon-frame">
-			<button type="primary" class="klon-buy" @click="buy(1)" v-if="goodsObjact.stock > 0">
-				<view class="klon-buyText">立即购买</view>
-			</button>
-			<button type="primary" class="klon-no" v-if="goodsObjact.stock < 1">
-				<view class="klon-buyText">已售罄</view>
-			</button>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		goodsObjact: {
-			type: Object,
-			default: function () {
-				return {
-					
-				}
-			}
-		},
-	},
-	data() {
-		return {
-			
-		};
-	},
-	methods: {
-		buy(data){
-			this.$emit('buy',data)
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.klon-buttom {
-	position: fixed;
-	bottom: 0rpx;
-	z-index: 95;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	width: 750rpx;
-	height: 100rpx;
-	padding: 10rpx 30rpx;
-	background-color: #ffffff;
-	.klon-frame {
-		width: 100%;
-		.klon-buy {
-			border-radius: 100rpx;
-			// background: linear-gradient(270deg, rgba(181,116,242, 1) 0%, rgba(139,86,254, 1) 100%);
-			background:linear-gradient(14deg,rgba(255,116,37,1),rgba(255,30,41,1));
-		}
-		.klon-no {
-			border-radius: 100rpx;
-			background: #999999;
-		}
-		.klon-buyText {
-			font-size: 34rpx;
-			width: 100%;
-		}
-	}
-}
-</style>

+ 0 - 169
pages/product/common/productBottom.vue

@@ -1,169 +0,0 @@
-<template>
-	<view class="page-bottom">
-		<navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
-			<text class="iconfont iconhome"></text>
-			<text>首页</text>
-		</navigator>
-		<view class="p-b-btn" :class="{ active: goodsObjact.userCollect }" @click="toFavorite(goodsObjact)">
-			<text class="iconfont " :class="{ iconlike: !goodsObjact.userCollect, iconlikefill: goodsObjact.userCollect }"></text>
-			<text>收藏</text>
-		</view>
-		<view class="action-btn-group">
-			<button type="primary" class=" action-btn no-border add-cart-btn" @click="buy(2)">加入购物车</button>
-			<button type="primary" class=" action-btn no-border buy-now-btn" @click="buy(1)">立即购买</button>
-		</view>
-	</view>
-</template>
-
-<script>
-import { collectAdd, collectDel } from '@/api/product.js';
-export default {
-	props: {
-		many: {
-			default: 9
-		},
-		goodsObjact: {
-			default: function() {
-				return {};
-			}
-		},
-		goodsid:{
-			default: ''
-		}
-	},
-	data() {
-		return {};
-	},
-	methods: {
-		buy(type) {
-			this.$emit('specOPne',type);
-		},
-		//收藏
-		toFavorite(item) {
-			let obj = this;
-			item.userCollect = !item.userCollect;
-			if (!item.userCollect) {
-				collectDel({ id: obj.goodsid, category: 'product' }).then(function(e) {
-					uni.showToast({
-						title: '成功取消收藏',
-						type: 'top',
-						duration: 1500
-					});
-				});
-			} else {
-				collectAdd({ id: obj.goodsid, category: 'product' }).then(function(e) {
-					uni.showToast({
-						title: '成功加入收藏',
-						type: 'top',
-						duration: 1500
-					});
-				});
-			}
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-/* 底部操作菜单 */
-.page-bottom {
-	position: fixed;
-	bottom: 0rpx;
-	z-index: 95;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	width: 750rpx;
-	height: 120rpx;
-	background-color: #ffffff;
-	/* box-shadow: 0 0 20rpx 0 rgba(0, 0, 0, 0.5);
-	border-radius: 16rpx; */
-	.p-b-btn {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		font-size: $font-sm;
-		color: $font-color-base;
-		width: 96rpx;
-		height: 80rpx;
-		.iconfont {
-			font-size: 40rpx;
-			line-height: 48rpx;
-			color: $font-color-light;
-		}
-		&.active,
-		&.active .iconfont {
-			color: $uni-color-primary;
-		}
-		.iconlikefill {
-			font-size: 46rpx;
-		}
-		image {
-			width: 56rpx;
-			height: 58rpx;
-		}
-	}
-	.action-btn-group {
-		display: flex;
-		height: 76rpx;
-		border-radius: 100px;
-		overflow: hidden;
-		margin-left: 20rpx;
-		position: relative;
-		&:after {
-			content: '';
-			position: absolute;
-			top: 50%;
-			right: 50%;
-			transform: translateY(-50%);
-			height: 28rpx;
-			width: 0;
-			border-right: 1px solid rgba(255, 255, 255, 0.5);
-		}
-		.action-btn {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 270rpx;
-			height: 100%;
-			font-size: $font-base;
-			padding: 0;
-			border-radius: 0;
-			background: transparent;
-			&.buy-now-btn {
-				background-color: #303e49;
-			}
-			&.add-cart-btn {
-				background-color: $base-color;
-			}
-		}
-	}
-}
-.p-b-btn {
-	display: flex;
-	flex-direction: column;
-	align-items: center;
-	justify-content: center;
-	font-size: $font-sm;
-	color: $font-color-base;
-	width: 96rpx;
-	height: 80rpx;
-	.iconfont {
-		font-size: 40rpx;
-		line-height: 48rpx;
-		color: $font-color-light;
-	}
-	&.active,
-	&.active .iconfont {
-		color: $uni-color-primary;
-	}
-	.icon-fenxiang2 {
-		font-size: 42rpx;
-		transform: translateY(-2rpx);
-	}
-	.iconlikefill {
-		font-size: 46rpx;
-	}
-}
-</style>

+ 0 - 146
pages/product/common/productContent.vue

@@ -1,146 +0,0 @@
-<template>
-	<view class="introduce-section">
-		<text class="title clamp2">{{ goodsObjact.store_name }}</text>
-		<button open-type="share" class="shareDate">
-			<image class="share-img" src="../../../static/img/img57.png"></image>
-			好物推荐
-		</button>
-		<text class="info" v-if="goodsObjact.store_info">{{ goodsObjact.store_info }}</text>
-		<!-- <view class="progress-box">
-			<progress :percent="goodsObjact.percent | parseIntTo" activeColor="#F65527" font-size="10" show-info border-radius="5" stroke-width="9" />
-			<view class="number">剩余{{ goodsObjact.percent | parseIntTo }}%</view>
-		</view> -->
-		<view class="price-box">
-			<text class="price-tip">¥</text>
-			<view class="price">
-				{{ goodsObjact.price }}
-				<text class="text">/份</text>
-				<text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text>
-			</view>
-		</view>
-		<view class="price-green">
-			¥{{ goodsObjact.ot_price }}
-			<text>市场价</text>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		goodsObjact: {
-			type: Object,
-			default: function() {
-				return {
-					percent:1
-				};
-			}
-		}
-	},
-	filters: {
-		parseIntTo(percent) {
-			percent = +percent * 100;
-			if (percent % 1 === 0) {
-				return percent;
-			} else {
-				percent = percent.toFixed(1);
-				return percent;
-			}
-		}
-	},
-	data() {
-		return {};
-	}
-};
-</script>
-
-<style lang="scss">
-/* 标题简介 */
-.introduce-section {
-	position: relative;
-	background: #fff;
-	padding: 35rpx 0rpx;
-	padding-left: 35rpx;
-	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
-		.tip-o {
-			color: #ff3334;
-			padding-left: 15rpx;
-		}
-	}
-	.shareDate {
-		position: absolute;
-		top: 25rpx;
-		right: 25rpx;
-		font-size: 26rpx;
-		color: #3d3f46;
-		border-radius: 15rpx;
-		background-color: #ffffff;
-		height: 60rpx;
-		line-height: 60rpx;
-	}
-	.share-img {
-		width: 30rpx;
-		height: 30rpx;
-		position: relative;
-		top: 5rpx;
-		left: 0;
-		margin-right: 10rpx;
-	}
-	.info {
-		color: #999999;
-		font-size: 26rpx;
-		padding-bottom: 15rpx;
-	}
-	.progress-box {
-		width: 260rpx;
-		position: relative;
-		margin-top: 15rpx;
-		line-height: 10px;
-		.number {
-			font-size: 17rpx;
-			position: absolute;
-			z-index: 999;
-			top: 3rpx;
-			left: 15rpx;
-			color: #ffffff;
-		}
-	}
-	.price-box {
-		display: flex;
-		align-items: baseline;
-		height: 64rpx;
-		padding: 10rpx 0;
-		font-size: 26rpx;
-		color: $uni-color-primary;
-	}
-	.price {
-		font-size: $font-lg + 6rpx;
-		.text {
-			padding-left: 5rpx;
-			color: #b0b0b0;
-			font-size: 22rpx !important;
-		}
-	}
-	.price-green {
-		color: #2dbd59;
-		font-size: 28rpx !important;
-		text {
-			background: #2dbd59;
-			color: #ffffff;
-			padding: 0rpx 10rpx;
-			border-radius: 5rpx;
-			font-size: 22rpx !important;
-			margin-left: 15rpx;
-		}
-	}
-	.m-price {
-		margin: 0 12rpx;
-		color: $font-color-light;
-		text-decoration: line-through;
-		margin-left: 25rpx;
-		font-size: 24rpx;
-	}
-}
-</style>

+ 0 - 55
pages/product/common/topSwiper.vue

@@ -1,55 +0,0 @@
-<template>
-	<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="scaleToFill"></image></view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-export default {
-	props: {
-		imgList: {
-			type: Array,
-			default: function () {
-				return []
-			}
-		},
-	},
-	data() {
-		return {
-			
-		};
-	},
-};
-</script>
-
-<style lang="scss">
-.carousel {
-	/* #ifdef APP-PLUS */
-	padding-top: var(--status-bar-height);
-	/* #endif */
-	height: 700rpx;
-	position: relative;
-	swiper {
-		height: 100%;
-	}
-	.image-wrapper {
-		width: 100%;
-		height: 100%;
-	}
-	.swiper-item {
-		display: flex;
-		justify-content: center;
-		align-content: center;
-		height: 700rpx;
-		overflow: hidden;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-}
-</style>

+ 0 - 386
pages/product/groupBooking/detail.vue

@@ -1,386 +0,0 @@
-<template>
-	<view class="box">
-		<!-- 拼团 -->
-		<view class="lyy-a">
-			<view class="lyy-a-p">
-				<view class="lyy-a-f">
-					<view><image :src="goods.image" class="lyy-a-tu" /></view>
-					<view class="lyy-a-z">
-						<view class="lyy-a-word lyy-a-word2">{{ goods.title }}</view>
-						<view class="flex money-box">
-							<view class="lyy-a-f lyy-a-word margin-r-20">
-								<view class="lyy-a-word3">¥{{ goods.price }}</view>
-							</view>
-							<view class="lyy-a-tu2 lyy-a-f padding-c-20 border-radius-all">
-								<view class="lyy-a-tu3"><image src="http://lxscimg.liuniu946.com/2019-11-02_5dbd110b5928a.png" class="lyy-a-tu5"></image></view>
-								<view class="lyy-a-tu4 flex-shrink-false">{{ goods.people }}人拼</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="lyy-hx"></view>
-		<!-- 第二部分 -->
-		<view class="lyy-b padding-t-20">
-			<view class="lyy-b-p">
-				<view class="lyy-b-jz flex">
-					<view class="image1"><view class="lyy-b-word">剩余时间</view></view>
-				</view>
-				<view class="lyy-b-jz flex">
-					<uni-countdowns
-						v-if="pinkBool == 0"
-						color="#FFFFFF"
-						splitor-color="#FC5B62"
-						background-color="#FC5B62"
-						border-color="#FC5B62"
-						:show-day="false"
-						:hour="stopTime.stopTimeH"
-						:minute="stopTime.stopTimeM"
-						:second="stopTime.stopTimeS"
-					></uni-countdowns>
-				</view>
-				<view class="lyy-b-jz flex">
-					<span class="lyy-b-word2">{{ pinkT.people }}</span>
-					<span class="lyy-b-word3">人成团,还差{{ peopleNub }}人</span>
-				</view>
-				<view class="lyy-b-jz flex">
-					<view class="cmy-user-box">
-						<view class="user-list">
-							<view class="lyy-y bg-gray"><image :src="pinkT.avatar" class="user-list-img" /></view>
-							<view class="lyy-y-word clamp">{{ pinkT.nickname }}</view>
-						</view>
-						<view class="user-list" v-for="(item , i) in people" :key='i'>
-						    <view class="lyy-y bg-gray"><image :src="item.avatar" class="user-list-img" /></view>
-						    <view class="lyy-y-word clamp">{{ item.nickname }}</view>
-						</view>
-						<view class="user-list" v-for="(l, i) in peopleNub" :key="i">
-							<view class="lyy-y bg-gray"></view>
-							<view class="lyy-y-word clamp">待邀请</view>
-						</view>
-					</view>
-				</view>
-				<view class="lyy-b-jz flex">
-					<view class="lyy-b-but" v-if="status == 1 && pinkBool == 0" @click="invitation">邀请好友参团</view>
-					<view class="lyy-b-but" v-if="status == 0&&pinkBool==0" @click="goBuy">立即加入</view>
-					<!-- <view class="lyy-b-but" @click="goBuy">立即加入</view> -->
-					<view class="lyy-b-but bg-gray" v-if="pinkBool == -1">拼团失败</view>
-					<view class="lyy-b-but" v-if="pinkBool == 1">拼团成功</view>
-				</view> 
-			</view>
-		</view>
-		<view class="lyy-hx"></view>
-		<!-- 第三部分 -->
-		<view class="lyy-c">
-			<view class="lyy-c-p">
-				<view class="lyy-c-word">
-					<view>拼团规则:</view>
-					<view>1.点击商品进入商品详情,通过超值拼团进入订单支付 页,用户付款成功后,按页面提示分享给微信好友。</view>
-					<view>2.好友通过分享,加入超值拼团,完成订单支付,待达成 拼团人数后,拼团成功。</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import uniCountdowns from '@/components/uni-countdown/uni-countdowns.vue';
-import { getCombinationLisPink } from '@/api/product.js';
-import { groupGoods } from '@/api/product.js';
-import { timeComputed } from '@/utils/rocessor.js';
-import { mapState } from 'vuex';
-// 倒计时
-export default {
-	data() {
-		return {
-			gp_id: 0, //拼团商品id
-			goods: {}, //商品信息
-			pinkT: {}, //拼团团长信息
-			people: [], //拼团成员信息
-			status: 0, //判断是否为团长
-			gid: 0,
-			user_info: {}, //当前用户信息
-			// 倒计时
-			stopTime: {
-				stopTimeH: 0,
-				stopTimeM: 0,
-				stopTimeS: 0
-			},
-			pinkBool: 0, //拼团状态0为待拼团 -1为拼团失败 1为拼团成功
-			userBool: 0, //判断用户是否已经参与拼团 0未参加 1为已参加
-			spread: '', //默认没有邀请人
-			userInfo: {} ,//当前用户信息
-			peopleNub:0
-		};
-	},
-	onLoad(e) {
-		// 保存拼团订单id
-		this.gp_id = e.id;
-		// 判断是否有人邀请
-		if (e.spread) {
-			// 存储邀请人
-			this.spread = e.spread;
-			uni.setStorageSync('spread', option.spread);
-		}
-	},
-	onShow() {
-		this.getData();
-	},
-	components: {
-		uniCountdowns
-	},
-	methods: {
-		//前往参团
-		goBuy() {
-			let _self = this;
-			uni.navigateTo({
-				url: '/pages/order/createOrder?pinkId=' + this.gp_id + '&type=pink' + '&pid=' + this.goods.product_id + '&gid=' + this.goods.id + '&merid=' + this.goods.mer_id
-			});
-		},
-		//邀请参团
-		invitation() {
-			let obj = this;
-			// 判断拼团是否已经结束
-			if (obj.userBool == 0) {
-				uni.showModal({
-					title: '提示',
-					content: '该拼团已经结束!',
-					showCancel: false,
-					success: res => {},
-					fail: () => {},
-					complete: () => {}
-				});
-				return;
-			}
-			uni.navigateTo({
-				url: '/pages/product/groupBooking/inviteImg?id=' + this.pinkT.id + '&spread=' + this.userInfo.uid,
-				success: res => {},
-				fail: e => {
-					console.log(e);
-				},
-				complete: () => {}
-			});
-		},
-		// #ifdef H5
-		// 加载微信html5页面分享方法
-		shareDate() {
-			let obj = this;
-			// 判断是否微信浏览器
-			let bool = uni.getStorageSync('weichatBrowser') || '';
-			if (bool) {
-				// 过滤微信强制添加的链接地址
-				url = url.replace('?from=singlemessage', '');
-				let data = {
-					link: url, // 分享链接
-					imgUrl: obj.goodsObjact.image, // 分享图标
-					desc: obj.goodsObjact.store_info,
-					title: obj.goodsObjact.store_name,
-					success: function() {}
-				};
-				obj.weichatObj.updateAppMessageShareData(data);
-				obj.weichatObj.updateTimelineShareData(data);
-			}
-		},
-		// #endif
-		// 获取拼团信息
-		getData() {
-			let obj = this;
-			// let data = {gp_id:_self.gp_id},
-			getCombinationLisPink({}, this.gp_id).then(e => {
-				let r = e.data;
-				// 保存拼团商品详细
-				obj.goods = r.store_combination;
-				// 保存团长信息
-				obj.pinkT = r.pinkT;
-				/* 计算倒计时 */
-				obj.timeComputed(obj.pinkT.stop_time * 1000);
-				// 获取拼团用户列表
-				obj.people = r.pinkAll;
-				// 获取当前是否已参与过这个拼团
-				obj.userBool = r.userBool;
-				// 判断当前用户是否为团长
-				if (r.pinkT.uid == r.userInfo.uid) {
-					// 显示邀请好用选项
-					obj.status = 1;
-				}
-				// 保存当前登录用户信息
-				obj.userInfo = r.userInfo;
-				// 获取拼团是否已经过期
-				obj.pinkBool = r.pinkBool;
-				obj.peopleNub = obj.pinkT.people - 1 - obj.people.length;
-				// #ifdef H5
-				// 加载微信分享配置
-				this.shareDate();
-				// #endif
-			});
-		},
-		// 计算倒计时时间
-		timeComputed(da) {
-			let obj = this;
-			let stopTime = timeComputed(da);
-			obj.stopTime.stopTimeH = stopTime.hours;
-			obj.stopTime.stopTimeM = stopTime.minutes;
-			obj.stopTime.stopTimeS = stopTime.seconds;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.box {
-	/* #ifdef APP-PLUS | MP */
-	padding-top: var(--status-bar-height);
-	/* #endif */
-}
-.lyy-c {
-	width: 100%;
-	background: rgba(255, 255, 255, 1);
-	.lyy-c-word {
-		font-size: 28rpx;
-		color: rgba(102, 102, 102, 1);
-		line-height: 50rpx;
-	}
-
-	.lyy-c-p {
-		padding: 39rpx 30rpx;
-	}
-}
-
-.lyy-wrap {
-	background-color: #f4f4f4;
-}
-
-.lyy-hx {
-	height: 14rpx;
-}
-
-.image1 {
-	width: 200rpx;
-	height: 33rpx;
-	background: url('http://lxscimg.liuniu946.com/2019-11-02_5dbd0e10a2160.png') center center no-repeat;
-	background-size: 200rpx auto;
-}
-
-.lyy-b {
-	width: 100%;
-	background-color: white;
-	.lyy-b-p {
-		padding: 30rpx 45rpx;
-		.lyy-b-word2,
-		.lyy-b-word3 {
-			font-size: 28rpx;
-			font-weight: bold;
-		}
-		.lyy-b-word2 {
-			color: #fc5b62;
-		}
-		.lyy-b-word3 {
-			color: #1d2023;
-		}
-		.lyy-b-jz {
-			width: 100%;
-			justify-content: center;
-			margin-bottom: 20rpx;
-			.lyy-y {
-				width: 80rpx;
-				height: 80rpx;
-				margin: 0px 15rpx;
-				border-radius: 40rpx;
-				overflow: hidden;
-				.user-list-img {
-					width: 100%;
-					height: 100%;
-				}
-			}
-			.lyy-y-word {
-				margin-top: 10rpx;
-				font-size: 28rpx;
-				text-align: center;
-				width: 110rpx;
-			}
-			.lyy-b-but {
-				width: 550rpx;
-				height: 80rpx;
-				background: #fc5b62;
-				border-radius: 100rpx;
-				text-align: center;
-				color: white;
-				line-height: 80rpx;
-				font-size: 32rpx;
-			}
-			.cmy-user-box {
-				.user-list {
-					display: inline-block;
-					line-height: 1;
-				}
-			}
-		}
-		.lyy-b-word {
-			text-align: center;
-			font-size: 26rpx;
-			color: rgba(29, 32, 35, 1);
-		}
-	}
-}
-
-// 商品列表样式
-.lyy-a {
-	width: 100%;
-	background-color: white;
-	.lyy-a-p {
-		padding: 22rpx 30rpx;
-		.lyy-a-f {
-			display: flex;
-			align-items: center;
-			.lyy-a-f2 {
-				flex: 1;
-			}
-			.lyy-a-tu {
-				width: 122rpx;
-				height: 122rpx;
-			}
-			.lyy-a-z {
-				padding-left: 30rpx;
-				flex-grow: 1;
-				.money-box {
-					justify-content: flex-start;
-					.lyy-a-tu2 {
-						background: rgba(255, 255, 255, 1);
-						border: 1rpx solid #fc5b62;
-						.lyy-a-tu3 {
-							background-color: #fc5b62;
-							padding: 2px 4px 0px 4px;
-							text-align: center;
-							height: 26rpx;
-							.lyy-a-tu5 {
-								width: 20rpx;
-								height: 20rpx;
-								display: block;
-							}
-						}
-						.lyy-a-tu4 {
-							margin-left: 2px;
-							font-size: 10px;
-							color: #fc5b62;
-							padding: 0px 10rpx;
-							text-align: center;
-						}
-					}
-				}
-				.lyy-a-word {
-					line-height: 56rpx;
-					.lyy-a-word3 {
-						font-size: 28rpx;
-						font-weight: bold;
-						color: #fc5b62;
-					}
-				}
-				.lyy-a-word2 {
-					font-size: 30rpx;
-					color: rgba(29, 32, 35, 1);
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 236
pages/product/groupBooking/index.vue

@@ -1,236 +0,0 @@
-<template>
-	<view class="lyy-bg4">
-		<view class="lyy-f-a">
-			<view class="lyy-f-b lyy-flex">
-				<view class="lyy-f-c item" @click="goProduct(items)" v-for="(items, ind) in goodsList" :key="ind">
-					<view class="content">
-						<view><image :src="items.image" class="lyy-f-image" /></view>
-						<view class="lyy-f-word1 lyy-f-jl ellipsis">{{ items.title }}</view>
-						<view class="lyy-flex2">
-							<view class="lyy-flex3">
-								<view class="lyy-f-word2 lyy-f-jl">¥{{ items.price * 1 }}</view>
-							</view>
-							<view class="lyy-a-tu2 lyy-flex2">
-								<view class="lyy-a-tu3"><image src="../../../static/img/img11.png" class="lyy-a-tu5" /></view>
-								<view class="lyy-a-tu4">{{ items.people }}人拼</view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<uni-load-more :status="loadingType"></uni-load-more>
-	</view>
-</template>
-
-<script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { getCombinationList } from '@/api/product.js';
-export default {
-	components: {
-		uniLoadMore
-	},
-	data() {
-		return {
-			goodsList: [],
-			loadingType: 'more', //加载更多状态
-			limit: 20, //每次加载数据条数
-			page: 1 //当前页数
-		};
-	},
-	onLoad(options) {
-		this.loadData();
-	},
-	//下拉刷新
-	onPullDownRefresh() {
-		this.loadData('refresh');
-	},
-	//监听页面是否滚动到底部加载更多
-	onReachBottom() {
-		this.loadData();
-	},
-	methods: {
-		//加载商品 ,带下拉刷新和上滑加载
-		async loadData(type = 'add', loading) {
-			let obj = this;
-			let data = {
-				page: obj.page,
-				limit: obj.limit
-			};
-			//没有更多直接返回
-			if (type === 'add') {
-				if (obj.loadingType === 'nomore') {
-					return;
-				}
-				obj.loadingType = 'loading';
-			} else {
-				obj.loadingType = 'more';
-			}
-
-			// 加载商品信息
-			getCombinationList(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();
-						}
-					}
-				})
-				.catch();
-		},
-		goProduct(e) {
-			uni.navigateTo({
-				url: '/pages/product/groupBooking/productGroup?id=' + e.id
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-// 拼团列表
-.lyy-f-a {
-	margin: 0px 15px;
-
-	.lyy-flex {
-		/* 内部模块1*/
-		display: flex;
-		justify-content: space-between;
-	}
-	.lyy-f-b {
-		flex-wrap: wrap;
-		.lyy-f-c {
-			flex: 0 0 50%;
-			/* width: 50%; */
-			margin: 10px 0px 0px 0px;
-		}
-
-		.item:nth-child(2n + 1) .content {
-			margin: 0px 7.5px 0px 0px;
-			border-radius: 10px;
-		}
-	}
-
-	.lyy-f-b .content {
-		background-color: white;
-		.lyy-f-image {
-			width: 100%;
-			height: 340rpx;
-			border-radius: 10rpx 10rpx 0rpx 0rpx;
-		}
-		.ellipsis {
-			width: 165px;
-			white-space: nowrap;
-			overflow: hidden;
-			text-overflow: ellipsis;
-		}
-		.lyy-f-jl {
-			padding: 5px 7px;
-		}
-		.lyy-f-word1 {
-			font-size: 12px;
-			color: rgba(50, 50, 50, 1);
-			line-height: 20px;
-			width: 300rpx;
-			white-space: nowrap;
-			overflow: hidden;
-			text-overflow: ellipsis;
-		}
-	}
-
-	.item:nth-child(2n) .content {
-		margin: 0px 0 0px 7.5px;
-		border-radius: 10px;
-	}
-
-	.lyy-f-word3 {
-		font-size: 12px;
-		text-decoration: line-through;
-		color: rgba(139, 139, 139, 1);
-	}
-
-	.lyy-f-word5 {
-		font-size: 20rpx;
-		color: rgba(153, 153, 153, 1);
-		margin: 20rpx 0px 0px 0px;
-	}
-
-	.lyy-f-word4 {
-		height: 26px;
-		background: #6fb22f;
-		color: white;
-		text-align: center;
-	}
-
-	.lyy-f-d {
-		height: 24rpx;
-		border: 1px solid rgba(252, 91, 98, 1);
-		border-radius: 3px;
-		font-size: 20rpx;
-		text-align: center;
-		width: 50rpx;
-		color: rgba(252, 91, 98, 1);
-		margin: 23rpx 0rpx 0rpx 0rpx;
-		line-height: 24rpx;
-	}
-
-	.lyy-flex2 {
-		display: flex;
-		padding-right: 10rpx;
-		align-items: center;
-		.lyy-flex3 {
-			flex: 1;
-			.lyy-f-word2 {
-				font-size: 14px;
-				color: rgba(241, 13, 59, 1);
-			}
-		}
-		&.lyy-a-tu2 {
-			height: 34rpx;
-			background: rgba(255, 255, 255, 1);
-			border: 1px solid #fc5b62;
-			border-radius: 2px;
-			margin: 10rpx 0rpx;
-
-			.lyy-a-tu3 {
-				height: 30rpx;
-				background-color: #fc5b62;
-				padding: 0px 6px;
-				text-align: center;
-				.lyy-a-tu5 {
-					width: 20rpx;
-					height: 20rpx;
-					margin-top: 6rpx;
-					display: block;
-				}
-			}
-
-			.lyy-a-tu4 {
-				margin-left: 4rpx;
-				font-size: 24rpx;
-				line-height: 30rpx;
-				color: #fc5b62;
-				padding: 0px 10rpx;
-				text-align: center;
-			}
-		}
-	}
-}
-</style>

+ 0 - 75
pages/product/groupBooking/inviteImg.vue

@@ -1,75 +0,0 @@
-<template>
-	<view class="box">
-		<image class="inviteImg" :src="image" ></image>
-		<view class="lyy-b-but">长按图片下载</view>
-		<!-- <view class="lyy-b-but" @click="domImg">点击下载图片</view> -->
-	</view>
-</template>
-
-<script>
-	import { getCombinationPoster } from '@/api/product.js';
-	import { mapState } from 'vuex';
-	export default {
-		data() {
-			return {
-				image:'',//海报
-				ptId:'',//拼团id
-			}
-		},
-		computed: {
-			...mapState(['baseURL','urlFile'])
-		},
-		onLoad(option) {
-			// 保存拼团id
-			this.ptId = option.id;
-			// 保存团长id
-			this.spread = option.spread;
-			// 加载分享图
-			this.getCombinationPoster();
-		},
-		methods: {
-			// 加载海报
-			getCombinationPoster() {
-				let obj = this;
-				getCombinationPoster({
-					id:obj.ptId,
-					// #ifdef H5|APP-PLUS
-					url:obj.baseURL+obj.urlFile+'/#/pages/product/groupBooking/detail?id='+obj.ptId+'&spread='+obj.spread,
-					from:'wechat',//来源wechat公众号
-					// #endif
-					// #ifdef MP
-					from:'routine',//来源routine小程序
-					url:'/pages/product/groupBooking/detail?id='+obj.ptId
-					// #endif
-				}).then((e) => {
-					obj.image = e.data.url;
-				}).catch((e) => {
-					console.log(e);
-				})
-			}
-		},
-	}
-</script>
-
-<style lang="scss">
-	page{
-		background-color: #FFFFFF;
-		height: 100%;
-	}
-	.box{
-		.inviteImg{
-			width: 750rpx;
-			height: 1200rpx;
-		}
-	}
-	.lyy-b-but {
-		height: 80rpx;
-		background: #fc5b62;
-		border-radius: 100rpx;
-		text-align: center;
-		color: white;
-		line-height: 80rpx;
-		font-size: 32rpx;
-		margin:  0 100rpx;
-	}
-</style>

+ 0 - 2094
pages/product/groupBooking/productCollage.vue

@@ -1,2094 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 轮播图 -->
-		<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="scaleToFill"></image></view>
-				</swiper-item>
-			</swiper>
-		</view>
-		<!-- 介绍部分 -->
-		<view class="introduce-section">
-			<view class="introduce-price flex1">
-				<view class="price">
-					<view class="price-left">
-						<view class="left-1">¥</view>
-						<view class="left-2">{{goodsObjact.price}}</view>
-					</view>
-					<!-- <view class="price-right" >单买价 ¥{{goodsObjact.product_price}}</view> -->
-				</view>
-				<view class="people flex_item">
-					<view class="people_number">{{goodsObjact.people}}人拼</view>
-				</view>
-			</view>
-			<view class="title" >{{goodsObjact.title}}</view>
-			<view class="bot-row flex1">
-				<view>快递:¥ {{goodsObjact.postage}}</view>
-				<view>剩余:{{ goodsObjact.allStock}}件</view>
-				<view>销量:{{ goodsObjact.sales }}</view>
-			</view>
-		</view>
-		<!-- <view class="c-list">
-			<view class="c-row b-b"><text class="tit">拼团玩法</text></view>
-			<view class="c-row b-b">
-				<view class="c-text">
-					①开团/参团
-					<text>——</text>
-					②邀请好友
-					<text>——</text>
-					③满员发货
-				</view>
-			</view>
-			<view class="c-row b-b" @click="toggleSpec()" v-if="goodsType == 2">
-				<text class="tit">购买数量</text>
-				<view class="con">
-					<text class="selected-text">{{ goodsNumber }}</text>
-				</view>
-				<text class="iconfont iconenter"></text>
-			</view>
-		</view> -->
-		<view class="pinklistbox" v-if="pinkTlist.length > 0">
-			<view class="listbox-1 flex1">
-				<view >{{pinkTlist.length}}人在拼单,可直接参与</view>
-				<view class="more flex-center" @click="opens_popup" v-if="more">查看全部
-					<image src="../../../static/img/img39.png"></image>
-				</view>
-			</view>
-			<view class="pinklist">
-				<view v-for="(ls, ind) in showlist" :key="ind" class="flex pinklist_list">
-					<view class="pink_row flex1">
-						<view class="pink_img"><image :src="ls.avatar"></image></view>
-						<view class="pink_name">{{ ls.nickname }}</view>
-					</view>
-					<view class="pink_tpl flex1">
-						<view >
-							<view class="pink_people">
-								还差
-								<text>{{ ls.count}}</text>
-								人拼团
-							</view>
-							<!-- <view class="pink_people">
-								剩余{{ls.time || '00:00:00'}}
-							</view> -->
-						</view>
-						<view class="pint" @click="groupBooking(ls.id)">
-							去拼单
-							<!-- <text class="iconfont iconenter"></text> opens_popups-->
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 评价 -->
-		<!-- <view class="eva-section" v-if="replyCount > 0" @click="navTo('/pages/product/reply')">
-			<view class="e-header">
-				<text class="tit">评价</text>
-				<text class="number">({{replyCount}})</text>
-				<text class="tip">全部评价</text>
-				<text class="iconfont iconenter"></text>
-			</view>
-			<view class="eva-box">
-				<view class="box-1 flex1">
-					<view class="left flex-start">
-						<image :src="commentList.avatar"></image>
-						<view class="content">
-							<view class="content-name">{{commentList.nickname}}</view>
-							<view class="content-time">{{commentList.add_time}}</view>
-						</view>
-					</view>
-					<view class="right flex-upDown-center">
-						<view><uniRate text="1" size="14" margin="1" :value="commentList.product_score" ></uniRate></view>
-						<text class="red">{{commentList.product_score}}分</text>
-					</view>
-				</view>
-				<view class="box-2">{{commentList.comment}}</view>
-				<view class="box-3">
-					<view v-for="(item,index) in commentList.pics" :key="index" class="box-3-1">
-						<image :src="item"></image>
-					</view>
-				</view>
-			</view>
-		</view> -->
-		<view class="eva-section" v-if="reply.length > 0" @click="navTo('/pages/product/reply?id=' + goodsid)">
-			<view class="e-header">
-				<text class="tit">评价</text>
-				<text>({{ list.replyCount }})</text>
-				<text class="tip">好评率 {{ list.replyChance }}%</text>
-				<text class="iconfont iconenter"></text>
-			</view>
-			<view class="eva-box">
-				<image class="portrait" :src="reply.avatar" mode="aspectFill"></image>
-				<view class="right">
-					<text class="name">{{ reply.nickname }}</text>
-					<text class="con">{{ reply.comment }}</text>
-					<view class="con_box">
-						<view class="con_image" v-for="item in reply.pics"><image :src="item"></image></view>
-					</view>
-					<view class="bot">
-						<text class="attr"></text>
-						<text class="time">{{ reply.add_time }}</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 商品详情图 -->
-		<view class="detail-desc">
-			<view class="desc-title flex-center">
-				<view class="one"></view>
-				商品详情
-				<view class="two"></view>
-			</view>
-			<rich-text :nodes="goodsObjact.description"></rich-text>
-		</view>
-		<!-- <view class="detail-desc">
-			<view class="d-header"><text>图文详情</text></view>
-			<rich-text :nodes="goodsObjact.description"></rich-text>
-		</view> -->
-		<!-- 拼团商品 -->
-		<view class="page-bottom" >
-			<!-- <navigator url="/pages/index/index" open-type="switchTab" class="p-b-btn">
-				<text class="iconfont iconhomefill"></text>
-				<text>首页</text>
-			</navigator> -->
-			<!--<view class="botton-1 flex-center">
-				<view class="botton-frame" @click="toFavorite(goodsObjact)">
-					<view class="img-box" v-if="goodsObjact.userCollect == false"><image src="../../static/label/img02.png"></image></view>
-					<view class="img-box" v-if="goodsObjact.userCollect == true"><image src="../../static/label/img08.png"></image></view>
-					<view class="word" :class="{ active: goodsObjact.userCollect }">收藏</view>
-				</view>
-			</view> 
-			<view class="p-b-btn" :class="{ active: goodsObjact.userCollect }" @click="toFavorite(goodsObjact)">
-				<text class="iconfont iconlikefill"></text>
-				<text>收藏</text>
-			</view> -->
-			<view class="action-btn-group">
-				<!-- <button type="primary" class=" action-btn no-border btn-favorites-btn" @click="navTo('/pages/favorites/favorites')">收藏夹</button> -->
-				<!-- <button type="primary" class=" action-btn no-border buy-now-btn" @click="toFavorite(goodsObjact)">{{ goodsObjact.userCollect ? '取消收藏' : '收藏' }}</button> -->
-				<button type="primary" class=" action-btn no-border add-cart-btn" @click="specOPne()">一键开团</button>
-			</view>
-		</view>
-		
-		<!-- 规格-模态层弹窗 -->
-		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec()">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer attr-content" @click.stop="stopPrevent">
-				<view class="a-t">
-					<image :src="actionImage"></image>
-					<view class="right">
-						<text class="name">{{ goodsObjact.store_name }}</text>
-						<text class="price">¥{{ actionPrice * goodsNumber }}</text>
-						<text class="stock">库存:{{ goodsStore }}件</text>
-						<view class="selected" v-if="specList != ''">
-							已选:
-							<text class="selected-text" v-for="(sItem, sIndex) in specSelected" :key="sIndex">{{ sItem }}</text>
-						</view>
-					</view>
-				</view>
-				<view v-for="(item, index) in specList" :key="index" class="attr-list">
-					<text>{{ item.attr_name }}</text>
-					<view class="item-list">
-						<text
-							v-for="(childItem, childIndex) in item.attr_value"
-							:key="childIndex"
-							class="tit"
-							:class="{ selected: childItem.check }"
-							@click="selectSpec(childItem, item, index)"
-						>
-							{{ childItem.attr }}
-						</text>
-					</view>
-				</view>
-				<!-- <view class="attr-list">
-					<text>购买数量</text>
-					<view class="item-list">
-						<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" v-show="buys_show">完成</button>
-				<button class="btn" style="background-color: #999999;" v-show="buys_shows">售罄</button>
-			</view>
-		</view>
-		
-		<!-- 查看全部拼单 -->
-		<uni-popup ref="popup" type="center" >
-			<view class="popup-row">
-				<view class="popup-1">
-					正在拼单
-				</view>
-				
-				<scroll-view scroll-y="true" class="popcont-box">
-					<view class="popup-2">
-						<view v-for="(item,index) in pinkTlist" :key="index" class="popup-2-row flex1">
-							<view class="row-1 flex1">
-								<view class="one">
-									<image :src="item.avatar"></image>
-									<view class="two">
-										<view class="two-1">{{item.nickname }}</view>
-										<!-- <view>剩余 {{item.time}}</view> -->
-									</view>
-								</view>
-								
-								<text class="two-1-1">还差{{item.count}}人</text>
-							</view>
-							<view class="row-2" @click="groupBooking(item.id)">
-								去拼单
-							</view>
-						</view>
-					</view>
-				</scroll-view>
-				
-			</view>
-			<view class="delete" @click="closes_popup"><image src="../../../static/img/deletes.png"></image></view>
-		</uni-popup>
-		
-		<!-- <uni-popup ref="popups" type="center" >
-			<view class="popup-rows" >
-				<view class="rows-1">参与李丹的拼单</view>
-				<view class="rows-2">仅剩<text class="red">1</text>个名额,23:41:55后结束</view>
-				<view class="rows-3 flex1">
-					<view class="rows-3-group" v-for="(item,index) in information" >
-						<view class="group-1">
-							<image src="../../static/delete/timg.jpg"></image>
-							<view class="group-1-1" >团长</view>
-						</view>
-						<view class="group-2">婷930sadasa</view>
-					</view>
-					<view class="rows-3-group" v-for="i in (5 - information.length) " >
-						<view class="group-1">
-							<image src="../../static/label/blank.png"></image>
-						</view>
-						<view class="group-2">带邀请</view>
-					</view>
-				</view>
-				<view class="rows-4" @click="navTo('/pages/order/createOrder')">参与拼单</view>
-			</view>
-			<view class="delete" @click="groupBooking()"><image src="../../static/label/deletes.png"></image></view>
-		</uni-popup>
-		 -->
-		
-		
-		<!-- #ifdef H5 -->
-        <!-- <view class="btn_fenxiang" @click="open">分享</view> -->
-        <view class="mask" v-show="show"><image @click="onTap" src="https://mmz.liuniu946.com/statics/img/shareimg.png"></image></view>
-        <!-- #endif -->  
-		<!-- #ifdef MP-WEIXIN -->
-		<button  open-type="share" class="shareDate">分享</button>
-		<!-- #endif -->
-	</view>
-</template>
-<script>
-import { mapState } from 'vuex';
-
-import { uniFav } from '@/components/uni-fav/uni-fav.vue';
-import { groupGoods, cartAdd, collectAdd, collectDel, productDetail } from '@/api/product.js';
-import { saveUrl } from '@/utils/loginUtils.js';
-import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
-import uniRate from '@/components/uni-rate/uni-rate.vue';
-import uniPopup from '@/components/uni-popup/uni-popup.vue'
-import uniPopupMessage from '@/components/uni-popup/uni-popup-message.vue'
-import uniPopupDialog from '@/components/uni-popup/uni-popup-dialog.vue'
-import uniNumberBox from '@/components/uni-number-box.vue';
-// #ifdef H5
-import { weixindata } from '@/utils/wxAuthorized';
-// #endif
-export default {
-	components: {
-		uniNumberBox,
-		uniFav,
-		uniNoticeBar,
-		uniRate,
-		uniPopup,
-		uniPopupMessage,
-		uniPopupDialog
-	},
-	// #ifdef MP
-	onShareAppMessage: function(res) {
-		if (res.from === 'button') {
-			// 来自页面内分享按钮
-			let pages = getCurrentPages();
-			// 获取当前页面
-			let page = pages[pages.length - 1];
-			let path = '/' + page.route + '?';
-			// 保存传值
-			for (let i in page.options) {
-				path += i + '=' + page.options[i] + '&';
-			}
-			// 保存邀请人
-			path += 'spread=' + this.userInfo.uid;
-			let data = {
-				path: path,
-				imageUrl: this.goodsObjact.image,
-				title: this.goodsObjact.title
-			};
-			return data;
-		}
-	},
-	// #endif
-	data() {
-		return {
-			imgList: [], //商品轮播图
-			goodsObjact: {}, //保存商品数据
-			pinkTlist:{
-				length:5
-			}, //进行中的拼团的信息
-			showlist: [],//进行中的拼团前两组的信息
-			replyCount:0,//评价总数
-			commentList:{},
-			specList: [],
-			ishow:'',
-			information:[],
-			popuplist:[],
-			show: false,
-			showModal: true, //拼单遮罩层
-			more: true, //查看更多按钮
-			autoplay: true,
-			vertical: true,
-			interval: 3000,
-			duration: 500,
-			buys_show: true,
-			buys_shows: false,
-			circular: true,
-			type: 1, //默认支付方式add为
-			specClass: 'none', //显示隐藏弹窗
-			actionImage: '', //商品图片
-			goodsid: '', //商品id
-			actionPrice: '', //商品价格
-			// specClass: 'none', //显示隐藏弹窗
-			shareList: [], //分享列表
-			goodsNumberMax: 0, //商品库存
-			//图片循环
-			people: '', //拼团人数
-			goodsNumber: 1, //购买数量(开团数量为1,整团数量为1*参团人数)
-			carnumber: '', //整团购买商品数量
-			reply: {}, //商品数据
-			list: '', //详情数据
-			goodsType: 1, //商品类型1秒杀商品0为普通商品2为拼团商品3为新人礼包
-			count: 0, //点击查看更多
-			showmore: true,
-			pinkTlistnum: '',
-			spread: '',
-			chooseGoodsNumber: 1, //选择商品的数量
-			specSelected: [], //选中的分类
-			goodsStore: 0, //选中库存
-			uniqueId: '',
-			productValue: '',
-			isCollect: '', //是否被收藏
-			maskshow: false, //弹窗
-			posturl: '',
-			option: '', //保存传值
-			opt: '', //保存小程序传值
-			uniquetype:false,//判断是否是从拼团详情界面跳回的 false 不是  true 是 
-			shop:'',//返回的拼团订单id
-			allStock:0//商品总库存
-		};
-	},
-	onLoad(option) {
-		this.option = option;
-		if (option.scene) {
-			if (typeof option.scene == 'string') {
-				let scene = ('{' + option.scene + '}')
-					.replace('qr%26', '')
-					.replace(/%3D/g, ':')
-					.replace(/%26/g, ',')
-					.replace('pid', '"pid"')
-					.replace('type', '"type"')
-					.replace('id', '"id"');
-				let opt = JSON.parse(scene);
-				this.opt = opt;
-				// 保存拼团订单id
-				this.goodsid = opt.id;
-				if (opt.pid) {
-					// 存储邀请人
-					this.spread = opt.pid;
-					uni.setStorageSync('spread', opt.pid);
-				}
-				if (opt.type) {
-					this.goodsType = opt.type;
-				}
-			}
-		} else {
-			//保存商品id
-			this.goodsid = option.id;
-			//判断有无人邀请
-			if (option.spread) {
-				// 存储邀请人
-				this.spread = option.spread;
-				uni.setStorageSync('spread', option.spread);
-			}
-			//判断是否是普通商品
-			if (option.type) {
-				console.log(option.type);
-				this.goodsType = option.type;
-			}
-			
-		}
-		//判断是否是从拼团详情界面跳回的
-		if (option.uniquetype) {
-			console.log(option.uniquetype);
-			this.uniquetype = option.uniquetype;
-		}
-		//接受返回的拼团订单id
-		if (option.shop) {
-			console.log(option.uniquetype);
-			this.shop = option.shop;
-		}
-		// 保存当前页面
-		saveUrl();
-	},
-	onShow() {
-		let obj = this;
-		groupGoods({}, obj.goodsid).then(function({ data }) {
-			console.log(data,112)
-			let goods = data.storeInfo;
-			obj.imgList = goods.images;//拼团轮播图
-			obj.goodsObjact = goods;//拼团拼团产品信息
-			// 保存商品总库存
-			obj.allStock = 0;
-			for(let key in 	data.productValue){
-				obj.allStock +=data.productValue[key].stock
-			}
-			obj.pinkTlist = data.pink;//进行中的拼团的信息
-			obj.showlist = obj.pinkTlist.slice(0, 2);//截取拼团信息的前两组
-			obj.replyCount = data.replyCount;//评价总数
-			//obj.commentList = data.reply[0];//保存评价里的第一条
-			obj.specList = data.productAttr;//保存产品属性
-			//商品详情图超出屏幕问题
-			if (obj.goodsObjact.description != null) {
-				obj.goodsObjact.description = obj.goodsObjact.description.replace(/<img/g, '<img class="rich-img"').replace(/<p>\S*<img/g, '<p class="pHeight"><img');
-			}
-			
-			if(obj.pinkTlist.length<=2){
-				obj.more = false;
-			};
-			if (data.reply) {
-				obj.reply = data.reply;
-			}
-			obj.list = data; //详情数据
-			obj.productValue = data.productValue; //保存属性值
-			// 保存数据修改数组
-			// console.log(obj.pinkTlist,55)
-			obj.people = goods.people; //拼团人数
-			obj.productId = goods.product_id;
-			
-			// 保存默认选中的对象
-			obj.specSelected = []; //初始化默认选择对象
-			for (let i = 0; i < obj.specList.length; i++) {
-				// 设置默认数据
-				let attrValue = obj.specList[i].attr_value[0];
-				attrValue.check = true;
-				obj.specSelected.push(attrValue.attr);
-			}
-			
-			//保存默认选中的对象字符串名称
-			let str = obj.specSelected.join(',');
-			// 设置默认值
-			obj.actionPrice = obj.productValue[str].price;
-			obj.goodsNumberMax = obj.productValue[str].stock;
-			obj.actionImage = obj.productValue[str].image;
-			obj.uniqueId = obj.productValue[str].unique;
-			obj.goodsStore = obj.productValue[str].quota;
-			console.log(obj.goodsStore,9000)
-			// #ifdef H5
-			obj.shareDate();
-			// #endif
-			// obj.clickMore();
-		});
-		// combination({}, obj.goodsid).then()
-	},
-	computed: {
-		...mapState(['userInfo', 'baseURL'])
-	},
-	methods: {
-		//选择规格
-		selectSpec(item, arr, ind) {
-			console.log(item,arr,ind,';')
-			arr.attr_value.forEach(function(e) {
-				e.check = false;
-			});
-			item.check = true;
-			let obj = this;
-			obj.specSelected[ind] = item.attr;
-			let str = obj.specSelected.join(',');
-			console.log(obj.productValue[str],116)
-			if (obj.productValue[str]) {
-				obj.buys_show = true;
-				obj.buys_shows = false;
-				obj.actionPrice = obj.productValue[str].price;
-				obj.goodsNumberMax = obj.productValue[str].stock;
-				obj.actionImage = obj.productValue[str].image;
-				obj.uniqueId = obj.productValue[str].unique;
-				if (obj.goodsType == 2) {
-					obj.goodsStore = obj.productValue[str].quota;
-				} else {
-					obj.goodsStore = obj.productValue[str].product_stock;
-				}
-			} else {
-				(obj.buys_show = false), (obj.buys_shows = true);
-			}
-		},
-		numberChange(e) {
-			//购买数量
-			this.chooseGoodsNumber = e.number;
-			// console.log(e.number)
-			// console.log(this.chooseGoodsNumber,'chooseGoodsNumber')
-		},
-		opens_popup(){
-			this.$refs.popup.open()
-		},
-		closes_popup(){
-			this.$refs.popup.close()
-		},
-		opens_popups(){
-			this.$refs.popup.close()
-			this.$refs.popups.open()
-		},
-		closes_popups(){
-			this.$refs.popups.close()
-		},
-		// 处理数组结构
-		dataUpReturn(data) {
-			//保存处理完毕数据
-			let arr = [];
-			// 保存临时数据
-			let arr1 = [];
-			// 设置每个小数组可以存放的数量
-			let num = 2;
-			if (data.length > 1) {
-				for (let i = 0; i < data.length; i++) {
-					// 保存数据到临时数组
-					arr1.push(data[i]);
-					if ((i + 1) % num === 0) {
-						console.log(arr1, 2);
-						// 添加数据到返回数组,用map方法解决物理指针问题导致的数据对象改变问题
-						arr.push(
-							arr1.map(e => {
-								return e;
-							})
-						);
-						// 清空临时数组重新开始计算
-						arr1 = [];
-					}
-				}
-			}
-			// 判断是否为奇数
-			if (data.length % num === 1) {
-				arr.push([data[data.length - 1]]);
-			}
-			return arr;
-		},
-		specOPne() {
-			//显示弹出框
-			// 是否有开团用户
-			// if (this.pinkTlist.length > 0) {
-			// 	this.groupBooking(this.pinkTlist[0][0].id);
-			// } else {
-			// }
-			this.specClass = 'show';
-		},
-		
-		//去拼团
-		groupBooking(item) {
-			uni.navigateTo({
-				url: '/pages/product/details?pink_id=' + item
-			});
-		},
-		//拼团列表数据分页
-		setPinkList() {
-			let obj = this;
-			let showlist = new Array();
-			for (let i = 0; i < obj.pinkTlist.length; i++) {
-				if (i >= obj.count) {
-					break;
-				}
-				showlist[i] = obj.pinkTlist[i];
-			}
-			obj.showlist = showlist;
-		},
-		//查看更多
-		// clickMore() {
-		// 	let obj = this;
-		// 	obj.count += 2;
-		// 	obj.setPinkList();
-		// 	if (obj.count >= obj.pinkTlist.length) {
-		// 		obj.showmore = false; //当次数大于拼团数据,查看更多隐藏
-		// 	} else {
-		// 		obj.showmore = true; //当次数大于拼团数据,查看更多隐藏
-		// 	}
-		// },
-		clickMore() {
-			this.showlist = this.pinkTlist;
-			console.log(this.showlist, 22);
-			this.more = false;
-		},
-		//规格弹窗开关
-		toggleSpec(str) {
-			if (this.specClass === 'show') {
-				this.specClass = 'hide';
-				setTimeout(() => {
-					this.specClass = 'none';
-				}, 250);
-			} else if (this.specClass === 'none') {
-				this.specClass = 'show';
-			}
-			// 判断是否为数字
-			if (typeof str == 'number') {
-				// 保存当前购买类型
-				this.type = str;
-			}
-		},
-		//显示弹窗
-		open() {
-			this.show = true;
-		},
-		//随意点击隐藏弹窗
-		onTap() {
-			if (!this.open) return;
-			this.close();
-		},
-		close() {
-			this.show = false;
-		},
-		//收藏
-		toFavorite(item) {
-			let obj = this;
-
-			item.userCollect = !item.userCollect;
-			// 判断是否已经收藏
-			if (!item.userCollect) {
-				collectDel({
-					id: item.id,
-					category: 'pink'
-				}).then(function(e) {
-					obj.$api.msg('成功取消收藏!');
-				});
-			} else {
-				collectAdd({
-					id: item.id,
-					category: 'pink'
-				}).then(function(e) {
-					obj.$api.msg('成功加入收藏!');
-				});
-			}
-		},
-		
-		// #ifdef H5
-		shareDate() {
-			let obj = this;
-			let url = window.location.href.replace(/[\?,&]{0,1}from=singlemessage/g, '') + '&spread=' + this.userInfo.uid;
-			let bool = uni.getStorageSync('weichatBrowser') || '';
-			// 判断是否微信浏览器
-			if (bool) {
-				let data;
-				if (obj.goodsType == 0) {
-					data = {
-						link: url, // 分享链接
-						imgUrl: obj.goodsObjact.image, // 分享图标
-						desc: obj.goodsObjact.store_info,
-						title: obj.goodsObjact.store_name,
-						success: function() {}
-					};
-				}
-				if (obj.goodsType == 2) {
-					data = {
-						link: url, // 分享链接
-						imgUrl: obj.goodsObjact.image, // 分享图标
-						title: obj.goodsObjact.title,
-						desc: obj.goodsObjact.info,
-						success: function() {}
-					};
-				}
-				weixindata(data);
-			}
-		},
-		// #endif
-		/**
-		 * 统一跳转接口,拦截未登录路由
-		 * navigator标签现在默认没有转场动画,所以用view
-		 */
-		navTo(url) {
-			uni.navigateTo({
-				url
-			});
-		},
-		// 立即购买
-		buy(item) {
-			let obj = this;
-			if(obj.uniquetype == false){
-				// 创建传值对象
-				console.log(obj.list.productValue);
-				console.log(obj.list);
-				let data = {
-					// cartNum: obj.goodsNumber, //商品数量
-					cartNum: obj.chooseGoodsNumber, //商品数量
-					uniqueId: obj.uniqueId, //商品标签
-					new: 1, //商品是否新增加到购物车1为不加入0为加入
-					mer_id: obj.shopId,
-					combinationId: obj.goodsid, //拼团编号
-					productId: obj.goodsObjact.product_id, //商品编号
-				};
-				this.specClass = 'none';
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						console.log(e);
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId + '&goodsType=' + obj.goodsType
-							});
-						}
-						if (obj.type == 2) {
-							obj.$api.msg('成功加入购物车');
-							obj.toggleSpec();
-						}
-					})
-					.catch(e => {
-						console.log(e);
-					}); 
-			}else{
-				console.log(obj.uniquetype,'obj.uniquetype')
-				uni.navigateTo({
-					url: '/pages/product/details?pink_id=' + obj.shop + '&unique=' + obj.uniqueId + '&uniquetype=' + obj.uniquetype
-				});
-			}
-			
-		},
-		// 阻止触发上级事件
-		stopPrevent() {}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-	padding-bottom: 160rpx;
-	line-height: 1;
-}
-
-// 处理图片间白色间距问题
-/deep/ .pHeight {
-	line-height: 0;
-}
-
-/deep/ div,
-/deep/ table {
-	max-width: 100% !important;
-}
-
-/* #ifdef MP */
-.rich-img {
-	width: 100% !important;
-	height: auto;
-}
-// 处理图片间白色间距问题
-.pHeight {
-	line-height: 0;
-}
-/* #endif */
-
-.popup-row{
-	width:580rpx;
-	background:#ffffff;
-	border-radius:20rpx;
-	.popup-1{
-		padding: 35rpx 0;
-		font-size:$font-lg;
-		font-weight:bold;
-		color:#333333;
-		text-align: center;
-		border-bottom: 1px solid #EEEEEE;
-	}
-	.popcont-box {
-		height: 600rpx;
-	}
-	.popup-2{
-		padding: 0 25rpx;
-		.popup-2-row{
-			padding: 25rpx 0;
-			border-bottom: 1px solid #EEEEEE;
-			&:nth-last-child(1){
-				border-bottom:none;
-			}
-			.row-1{
-				width: 70%;
-				.one{
-					display: flex;
-					align-items: center;
-					image{
-						width: 75rpx;
-						height: 75rpx;
-						border-radius: 50%;
-					}
-				}
-				.two{
-					margin-left: 20rpx;
-					font-size:28rpx;
-					font-weight:500;
-					color:#333333;
-					.two-1{
-						// margin-bottom: 20rpx;
-						font-size:$font-base;
-						font-weight:500;
-						max-width: 160rpx;
-						overflow: hidden;
-						text-overflow: ellipsis;
-						white-space: nowrap;
-					}
-				}
-				.two-1-1{
-					font-size:$font-base;
-					font-weight:500;
-					color:#666666;
-				}
-			}
-			.row-2{
-				padding: 20rpx 30rpx;
-				background:$base-color;
-				border-radius:10rpx;
-				font-size:28rpx;
-				font-weight:500;
-				color:#FFFFFF;
-			}
-		}
-	}
-}
-.popup-rows{
-	width:580rpx;
-	background:#ffffff;
-	border-radius:20rpx;
-	text-align: center;
-	padding-bottom: 35rpx;
-	.rows-1{
-		font-size:$font-lg;
-		font-weight:bold;
-		color:#333333;
-		padding-top: 60rpx;
-	}
-	.rows-2{
-		margin-top: 25rpx;
-		font-size:28rpx;
-		font-weight:500;
-		color:#333333;
-	}
-	.rows-3{
-		margin-top: 35rpx;
-		padding: 0 50rpx;
-		
-		.rows-3-group {
-			display: flex;
-			align-items: center;
-			flex-direction: column;
-			.group-1{
-				display: flex;
-				align-items: center;
-				flex-direction: column;
-			}
-			.group-2{
-				flex: 1;
-				font-size:$font-sm - 4rpx;
-				font-weight:500;
-				color:#666666;
-				margin-top: 10rpx;
-				width:55rpx;
-				overflow:hidden;
-				white-space:nowrap;
-				text-overflow:ellipsis;
-			}
-			image{
-				width: 80rpx;
-				height: 80rpx;
-				border-radius: 50%;
-			}
-			.group-1-1{
-				z-index: 10;
-				margin-top: -25rpx;
-				width:70rpx;
-				height:25rpx;
-				background:#e64048;
-				border-radius:12rpx;
-				font-size:$font-sm - 4rpx;
-				font-weight:500;
-				color:#ffffff;
-				line-height: 25rpx;
-			}
-		}
-	}
-	.rows-4{
-		margin: 40rpx 45rpx 0rpx 45rpx;
-		padding: 25rpx 0;
-		background:$base-color;
-		border-radius:10rpx;
-		
-		font-size:$font-lg;
-		font-weight:500;
-		color:#ffffff;
-	}
-}
-
-.delete{
-	width: 60rpx;
-	height: 60rpx;
-	position: absolute;
-	right: -30rpx;
-	top:-30rpx;
-	image{
-		width: 60rpx;
-		height: 60rpx;
-	}
-}
-
-/* 评价 */
-.eva-section {
-	padding: 20rpx 30rpx;
-	background: #fff;
-	margin-top: 20rpx;
-	.e-header {
-		display: flex;
-		align-items: center;
-		font-size:28rpx;
-		color: #333333;
-		.tit {
-			margin-right: 15rpx;
-		}
-		.tip {
-			flex: 1;
-			font-size:24rpx;
-			color: #999999;
-			text-align: right;
-		}
-		.iconenter {
-			width: 24rpx;
-			height: 24rpx;
-			margin-left: 10rpx;
-		}
-	}
-	.eva-box {
-		padding-top: 30rpx;
-		.box-1{
-			.left{
-				image{
-					width: 80rpx;
-					height: 80rpx;
-					border-radius: 50%;
-				}
-				.content{
-					margin-left: 15rpx;
-					.content-name{
-						font-size:24rpx;
-						font-weight:500;
-						color:#333333;
-					}
-					.content-time{
-						font-size:20rpx;
-						font-weight:500;
-						color:#999999;
-					}
-				}
-			}
-			.right{
-				.image{
-					width: 25rpx;
-					height: 25rpx;
-					margin-left: 10rpx;
-				}
-				.red{
-					margin-left: 15rpx;
-					font-size:24rpx;
-					font-weight:500;
-					color:#fd5b23;
-				}
-				.con_image{
-					
-				}
-			}
-		}
-		.box-2{
-			padding: 30rpx 0 15rpx 0;
-			font-size:28rpx;
-			font-weight:500;
-			color:#666666;
-		}
-		.box-3{
-			.box-3-1{
-				display: inline;
-				width: 150rpx;
-				height: 150rpx;
-				image{
-					margin-right: 20rpx;
-					width: 150rpx;
-					height: 150rpx;
-				}
-			}
-			
-		}
-	}
-}
-
-/* .list-row {
-	position: fixed;
-	top: 450rpx;
-	left: 86rpx;
-
-	.row {
-		position: relative;
-		width: 578rpx;
-		height: 700rpx;
-		background: #ffffff;
-		border-radius: 20rpx;
-
-		.row-1 {
-			flex: 1;
-			text-align: center;
-			padding: 26rpx 223rpx;
-			border-bottom: 2rpx solid #eeeeee;
-
-			.row-1-1 {
-				font-size: $font-lg;
-				font-weight: bold;
-				color: #333333;
-			}
-		}
-
-		.row-2 {
-			padding: 0 23rpx;
-
-			.pinklist_list {
-				padding: 20rpx 0;
-				display: flex;
-				justify-content: space-around;
-				align-items: center;
-				border-bottom: 1px solid #eeeeee;
-
-				.left {
-					width: 74rpx;
-					height: 74rpx;
-					background-color: #e3e3e3;
-					border-radius: 50%;
-				}
-
-				.center {
-					display: flex;
-					flex-wrap: wrap;
-					margin-left: 17rpx;
-
-					.center-1 {
-						display: flex;
-						align-items: center;
-						letter-spacing: 3rpx;
-
-						.center-1-1 {
-							font-size: $font-base;
-							font-weight: 500;
-							color: #333333;
-						}
-
-						.center-1-2 {
-							font-size: $font-base - 2rpx;
-							font-weight: 500;
-							color: #333333;
-						}
-					}
-				}
-
-				.right {
-					width: 134rpx;
-					height: 59rpx;
-					background: $base-color;
-					border-radius: 10rpx;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-
-					.right-word {
-						font-size: 26rpx;
-						font-weight: 500;
-						color: #ffffff;
-					}
-				}
-			}
-		}
-
-		.row-3 {
-			width: 56rpx;
-			height: 56rpx;
-			position: absolute;
-			top: -28rpx;
-			right: -28rpx;
-		}
-	}
-} */
-
-.iconenter {
-	font-size: $font-base + 2rpx;
-	color: #888;
-}
-
-
-.carousel {
-	height: 722rpx;
-	position: relative;
-
-	swiper {
-		height: 100%;
-	}
-
-	.image-wrapper {
-		width: 100%;
-		height: 100%;
-	}
-
-	.swiper-item {
-		display: flex;
-		justify-content: center;
-		align-content: center;
-		height: 750rpx;
-		overflow: hidden;
-
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-}
-
-/* 标题简介 */
-.introduce-section {
-	background: #fff;
-	padding: 15rpx 25rpx 30rpx 25rpx;
-	.introduce-price{
-		width: 100%;
-		overflow: hidden;
-		.price{
-			display: flex;
-			align-items: flex-end;
-			justify-content: flex-start;
-			
-			.price-left{
-				display: flex;
-				align-items: flex-end;
-				color:#fc4141;
-				margin-right: 20rpx;
-				.left-1{
-					margin-right: 5rpx;
-					font-size:28rpx;
-				}
-				.left-2{
-					font-size:$font-lg + 16rpx;
-					line-height: 38rpx;
-				}
-			}
-			.price-right{
-				font-size:28rpx;
-				color:#333333;
-				opacity:0.61;
-			}
-		}
-		.people{
-			width: 140rpx;
-			height: 45rpx;
-			background: url(../../../static/img/img43.png) no-repeat center;
-			background-size: 100%;
-			.people_number{
-				margin-left: 60rpx;
-				font-size:20rpx;
-				font-weight:500;
-				color:rgba(250,39,64,1);
-				line-height: 40rpx;
-			}
-		}
-		/* .share{
-			image{
-				width: 30rpx;
-				height: 35rpx;
-			}
-		} */
-	}
-	.title {
-		margin-top: 30rpx;
-		font-size: 32rpx;
-		color: #1D2023;
-		line-height: 40rpx;
-		font-weight: 600;
-	}
-	.bot-row{
-		margin-top: 20rpx;
-		overflow: hidden;
-		font-size:24rpx;
-		font-weight:500;
-		color:#999999;
-	}
-}
-
-
-/* 标题简介 */
-/* .introduce-section {
-	background: #fff;
-	padding: 20rpx 30rpx;
-
-	.title {
-		font-size: 32rpx;
-		color: $font-color-dark;
-		height: 50rpx;
-		line-height: 50rpx;
-	}
-
-	.price-box {
-		display: flex;
-		align-items: baseline;
-		// height: 64rpx;
-		padding: 10rpx 0;
-		font-size: 26rpx;
-		color: $uni-color-primary;
-	}
-
-	.price {
-		font-size: $font-lg + 2rpx;
-		color: #666666 !important;
-	}
-
-	.vip_price {
-		font-size: $font-lg + 2rpx;
-		color: $uni-color-primary;
-		padding-left: 15rpx;
-	}
-
-	.m-price {
-		margin: 0 12rpx;
-		color: $font-color-light;
-		text-decoration: line-through;
-	}
-
-	.coupon-tip {
-		align-items: center;
-		padding: 4rpx 10rpx;
-		background: $uni-color-primary;
-		font-size: $font-sm;
-		color: #fff;
-		border-radius: 6rpx;
-		line-height: 1;
-		transform: translateY(-4rpx);
-	}
-
-	.bot-row {
-		display: flex;
-		align-items: center;
-		height: 50rpx;
-		font-size: $font-sm;
-		color: $font-color-light;
-
-		text {
-			flex: 1;
-		}
-	}
-
-	.people {
-		border-radius: 10rpx;
-		height: 35rpx !important;
-		border: 2rpx solid #db1935;
-		height: 40rpx;
-
-		.people_image {
-			background-color: #db1935;
-			width: 40rpx;
-			height: 35rpx;
-			text-align: center;
-			border-top-left-radius: 20%;
-			border-bottom-left-radius: 20%;
-
-			image {
-				width: 25rpx;
-				height: 20rpx;
-				// margin-bottom: 5rpx;
-			}
-		}
-
-		.people_number {
-			padding: 5rpx 10rpx;
-		}
-	}
-} */
-
-/* 分享 */
-.share-section {
-	display: flex;
-	align-items: center;
-	color: $font-color-base;
-	background: linear-gradient(left, #fdf5f6, #fbebf6);
-	padding: 12rpx 30rpx;
-
-	.share-icon {
-		display: flex;
-		align-items: center;
-		width: 70rpx;
-		height: 30rpx;
-		line-height: 1;
-		border: 1px solid $uni-color-primary;
-		border-radius: 4rpx;
-		position: relative;
-		overflow: hidden;
-		font-size: 22rpx;
-		color: $uni-color-primary;
-
-		&:after {
-			content: '';
-			width: 50rpx;
-			height: 50rpx;
-			border-radius: 50%;
-			left: -20rpx;
-			top: -12rpx;
-			position: absolute;
-			background: $uni-color-primary;
-		}
-	}
-
-	.iconfavorfill {
-		position: relative;
-		z-index: 1;
-		font-size: 24rpx;
-		margin-left: 2rpx;
-		margin-right: 10rpx;
-		color: #fff;
-		line-height: 1;
-	}
-
-	.tit {
-		font-size: $font-base;
-		margin-left: 10rpx;
-	}
-
-	.iconprompt {
-		padding: 10rpx;
-		font-size: 30rpx;
-		line-height: 1;
-	}
-
-	.share-btn {
-		flex: 1;
-		text-align: right;
-		font-size: $font-sm;
-		color: $uni-color-primary;
-	}
-
-	.iconenter {
-		font-size: $font-sm;
-		margin-left: 4rpx;
-		color: $uni-color-primary;
-	}
-}
-
-.c-list {
-	font-size: $font-sm + 2rpx;
-	color: #303133;
-	margin-top: 20rpx;
-	background: #fff;
-
-	.c-row {
-		display: flex;
-		align-items: center;
-		padding: 20rpx 30rpx;
-		position: relative;
-
-		.c-text {
-			text {
-				padding-left: 25rpx;
-				padding-right: 25rpx;
-			}
-		}
-	}
-
-	.tit {
-		width: 140rpx;
-	}
-
-	.con {
-		flex: 1;
-		color: $font-color-dark;
-
-		.selected-text {
-			margin-right: 10rpx;
-		}
-	}
-
-	.bz-list {
-		height: 40rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-dark;
-
-		text {
-			display: inline-block;
-			margin-right: 30rpx;
-		}
-	}
-
-	.con-list {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		color: $font-color-dark;
-		line-height: 40rpx;
-	}
-
-	.red {
-		color: $uni-color-primary;
-	}
-}
-
-/* 评价 */
-/* .eva-section {
-	display: flex;
-	flex-direction: column;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	margin-top: 16rpx;
-
-	.e-header {
-		display: flex;
-		align-items: center;
-		height: 70rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-light;
-
-		.tit {
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			margin-right: 4rpx;
-		}
-
-		.tip {
-			flex: 1;
-			text-align: right;
-		}
-
-		.iconenter {
-			margin-left: 10rpx;
-		}
-	}
-}
- 
-.eva-box {
-	display: flex;
-	padding: 20rpx 0;
-
-	.portrait {
-		flex-shrink: 0;
-		width: 80rpx;
-		height: 80rpx;
-		border-radius: 100px;
-	}
-
-	.right {
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base;
-		color: $font-color-base;
-		padding-left: 26rpx;
-
-		.con {
-			font-size: $font-base;
-			color: $font-color-dark;
-			padding: 20rpx 0;
-		}
-
-		.bot {
-			display: flex;
-			justify-content: space-between;
-			font-size: $font-sm;
-			color: $font-color-light;
-		}
-	}
-}
-
-.con_image {
-	width: 130rpx;
-	height: 130rpx;
-	display: inline-block;
-	padding: 15rpx;
-
-	image {
-		width: 100%;
-		height: 100%;
-	}
-}*/
-
-/*  详情 */
-.detail-desc {
-	.desc-title{
-		font-size:28rpx;
-		font-weight:500;
-		color:#1D2023;
-		padding: 25rpx 0;
-		.one{
-			width:77rpx;
-			height:1px;
-			background:linear-gradient( to right ,rgba(204,204,204,0), rgba(204,204,204,1));
-			margin-right: 10rpx;
-		}
-		.two{
-			margin-left: 10rpx;
-			width:77rpx;
-			height:1px;
-			background:linear-gradient( to left ,rgba(204,204,204,0), rgba(204,204,204,1));
-		}
-	}
-	
-}
-/* .detail-desc {
-	background: #fff;
-	margin-top: 16rpx;
-
-	img {
-		max-width: 100%;
-	}
-
-	.d-header {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 80rpx;
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-		position: relative;
-
-		text {
-			padding: 0 20rpx;
-			background: #fff;
-			position: relative;
-			z-index: 1;
-		}
-
-		&:after {
-			position: absolute;
-			left: 50%;
-			top: 50%;
-			transform: translateX(-50%);
-			width: 300rpx;
-			height: 0;
-			content: '';
-			border-bottom: 1px solid #ccc;
-		}
-	}
-} */
-
-/* 规格选择弹窗 */
-.attr-content {
-	padding: 25rpx 30rpx;
-
-	.a-t {
-		display: flex;
-
-		image {
-			width: 170rpx;
-			height: 170rpx;
-			flex-shrink: 0;
-			border-radius: 8rpx;
-		}
-
-		.right {
-			display: flex;
-			flex-direction: column;
-			padding-left: 24rpx;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-base;
-			line-height: 42rpx;
-			width: 75%;
-
-			.price {
-				font-size: $font-lg;
-				color: $uni-color-primary;
-				margin: 10rpx 0rpx;
-			}
-
-			.name {
-				font-size: 32rpx;
-				color: $font-color-dark;
-				height: 50rpx;
-				overflow: hidden;
-				text-overflow: ellipsis;
-				white-space: nowrap;
-				display: block;
-			}
-
-			.selected-text {
-				margin-right: 10rpx;
-			}
-		}
-	}
-
-	.attr-list {
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base + 2rpx;
-		color: $font-color-base;
-		padding-top: 30rpx;
-		padding-left: 10rpx;
-	}
-
-	.item-list {
-		padding: 20rpx 0 0;
-		display: flex;
-		flex-wrap: wrap;
-
-		text {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			background: #eee;
-			margin-right: 20rpx;
-			margin-bottom: 20rpx;
-			border-radius: 100rpx;
-			min-width: 60rpx;
-			height: 60rpx;
-			padding: 0 20rpx;
-			font-size: $font-base;
-			color: $font-color-dark;
-		}
-
-		.selected {
-			background: #fbebee;
-			color: $uni-color-primary;
-		}
-	}
-}
-
-/*  弹出层 */
-.popup {
-	position: fixed;
-	left: 0;
-	top: 0;
-	right: 0;
-	bottom: 0;
-	z-index: 99;
-
-	&.show {
-		display: block;
-
-		.mask {
-			animation: showPopup 0.2s linear both;
-		}
-
-		.layer {
-			animation: showLayer 0.2s linear both;
-		}
-	}
-
-	&.hide {
-		.mask {
-			animation: hidePopup 0.2s linear both;
-		}
-
-		.layer {
-			animation: hideLayer 0.2s linear both;
-		}
-	}
-
-	&.none {
-		display: none;
-	}
-
-	.mask {
-		position: fixed;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		z-index: 1;
-		background-color: rgba(0, 0, 0, 0.4);
-	}
-
-	.layer {
-		position: fixed;
-		z-index: 99;
-		bottom: 0;
-		width: 100%;
-		min-height: 35vh;
-		border-radius: 10rpx 10rpx 0 0;
-		background-color: #fff;
-
-		.btn {
-			height: 66rpx;
-			line-height: 66rpx;
-			border-radius: 100rpx;
-			background: $uni-color-primary;
-			font-size: $font-base + 2rpx;
-			color: #fff;
-			margin: 30rpx auto 20rpx;
-		}
-	}
-
-	@keyframes showPopup {
-		0% {
-			opacity: 0;
-		}
-
-		100% {
-			opacity: 1;
-		}
-	}
-
-	@keyframes hidePopup {
-		0% {
-			opacity: 1;
-		}
-
-		100% {
-			opacity: 0;
-		}
-	}
-
-	@keyframes showLayer {
-		0% {
-			transform: translateY(120%);
-		}
-
-		100% {
-			transform: translateY(0%);
-		}
-	}
-
-	@keyframes hideLayer {
-		0% {
-			transform: translateY(0);
-		}
-
-		100% {
-			transform: translateY(120%);
-		}
-	}
-}
-//分享
-.btn_fenxiang {
-	position: fixed;
-	right: 20rpx;
-	bottom: 50%;
-	z-index: 95;
-	width: 100rpx;
-	color: #ffffff;
-	border-radius: 100%;
-	background-color: $background-color;
-	line-height: 100rpx;
-	text-align: center;
-	font-size: 30rpx;
-}
-.shareDate{
-	position: fixed;
-	right: 20rpx;
-	bottom: 50%;
-	z-index: 95;
-	color: #ffffff;
-	border-radius: 100rpx;
-	height: 120rpx;
-	line-height: 120rpx;
-	background-color: $background-color;
-	text-align: center;
-	font-size: 30rpx;
-}
-/* 底部操作菜单 */
-.page-bottom {
-	position: fixed;
-	bottom: 0rpx;
-	z-index: 95;
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	width: 100%;
-	height: 100rpx;
-	background: rgba(255, 255, 255, 0.9);
-	.botton-1{
-		width: 100rpx;
-		height: 100rpx;
-		background-color: #FFFFFF;
-		.botton-frame {
-			display: flex;
-			align-items: center;
-			flex-direction: column;
-			.img-box {
-				width: 45rpx;
-				height: 40rpx;
-				image{
-					width: 100%;
-					height: 100%;
-				}
-			}
-			
-		}
-		.word{
-			margin-top: 6rpx;
-			font-size:20rpx;
-			font-weight:400;
-			color:#666666;
-			&.active {
-				color: $uni-color-primary;
-			}
-		}
-	}
-	.p-b-btn {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		font-size: $font-sm;
-		color: $font-color-base;
-		width: 100rpx;
-		height: 100rpx;
-
-		.iconfont {
-			font-size: 40rpx;
-			line-height: 48rpx;
-			color: $font-color-light;
-		}
-
-		&.active,
-		&.active .iconfont {
-			color: $uni-color-primary;
-		}
-
-		.icon-fenxiang2 {
-			font-size: 42rpx;
-			transform: translateY(-2rpx);
-		}
-
-		.iconlikefill {
-			font-size: 46rpx;
-		}
-	}
-
-	.gobuy {
-		width: 100%;
-		background: #db1935;
-		height: 100%;
-		color: #ffffff;
-		text-align: center;
-		padding-top: 25rpx;
-		border-radius: 15rpx;
-	}
-
-	.action-btn-group {
-		display: flex;
-		flex:1;
-		height: 100%;
-		overflow: hidden;
-		position: relative;
-
-		&:after {
-			content: '';
-			position: absolute;
-			top: 50%;
-			right: 50%;
-			transform: translateY(-50%);
-			height: 28rpx;
-			width: 0;
-			// border-right: 1px solid rgba(255, 255, 255, 0.5);
-		}
-
-		.action-btn {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			flex: 1;
-			height: 100%;
-			font-size: $font-lg + 4rpx;
-			font-weight:bold;
-			background: transparent;
-			border-radius:0;
-			letter-spacing: 5rpx;
-
-			&.buy-now-btn {
-				background-color: #ffb238;
-			}
-
-			&.add-cart-btn {
-				background:$base-color;
-			}
-			&.btn-favorites-btn {
-				background-color: rgba(24, 179, 255, 1);
-			}
-		}
-
-		/* .action-btn1 {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 210rpx;
-			height: 100%;
-			font-size: $font-base;
-			padding: 0;
-			border-radius: 0;
-			background: transparent;
-
-			&.buy-now-btn {
-				background-color: #ffb238;
-			}
-
-			&.add-cart-btn {
-				background-color: #db1935;
-			}
-		} */
-	}
-}
-
-// 底部拼团、秒杀支付按钮
-.goods-pay-box {
-	position: fixed;
-	left: 0;
-	bottom: 0;
-	z-index: 95;
-	width: 750rpx;
-	height: 100rpx;
-	line-height: 1;
-	color: #ffffff;
-	text-align: center;
-	font-size: $font-lg;
-	.bgLine {
-		background: linear-gradient(90deg, rgba(239, 78, 81, 1) 0%, rgba(244, 113, 59, 1) 100%);
-	}
-	// 拼团支付按钮
-	.goods-pay {
-		display: flex;
-		align-content: center;
-		flex-wrap: wrap;
-		justify-content: center;
-		.goods-buttom,
-		.goods-buttom-money {
-			width: 100%;
-		}
-		.goods-buttom-money {
-			font-size: $font-base;
-		}
-	}
-	.goods-pay-stop,
-	.goods-pay {
-		padding: 15rpx 0;
-		height: 100%;
-		width: 100%;
-	}
-	.goods-pay-stop {
-		background: $color-gray;
-		line-height: 70rpx;
-	}
-}
-
-
-//拼团列表
-.pinklistbox {
-	background: #ffffff;
-	text-align: center;
-	font-size: 26rpx;
-	margin-top: 25rpx;
-	.listbox-1{
-		padding: 25rpx;
-		font-size:$font-lg - 2rpx;
-		font-weight:500;
-		color:#333333;
-		border-bottom: 1px solid #EEEEEE;
-		.more{
-			font-size:$font-base - 2rpx;
-			font-weight:500;
-			color:#999999;
-			image {
-				width: 25rpx;
-				height: 25rpx;
-			}
-		}
-	}
-	.pinklist{
-		margin: 0 25rpx;
-		
-		.pinklist_list{
-			padding: 25rpx 0;
-			border-bottom: 1px solid #EEEEEE;
-			&:nth-last-child(1){
-				border-bottom: none;
-			}
-		}
-	}
-}
-
-/* .pinklistbox {
-	background: #ffffff;
-	margin-top: 25rpx;
-	overflow: hidden;
-} */
-
-.pink_num {
-	background: -webkit-linear-gradient(left, #fdf5f6, #fbebf6);
-	padding: 15rpx 25rpx;
-	font-size: 26rpx;
-	color: #dd524d;
-}
-
-.pint {
-	background: -webkit-linear-gradient(0deg, #fa2740,#fe5544);
-	border-radius:10rpx;
-	margin-left: 20rpx;
-	padding: 20rpx 25rpx;
-	color: #ffffff;
-	font-size: $font-base - 2rpx;
-
-	/* .iconenter {
-		font-size: 15px;
-		color: #ffffff;
-	} */
-}
-
-
-
-.pink_row {
-	.pink_img{
-		width: 70rpx;
-		height: 70rpx;
-		
-		image {
-			width: 100%;
-			height: 100%;
-			border-radius: 100%;
-		}
-	}
-	
-}
-.pink_people {
-	font-size: $font-base - 2rpx;
-	// margin-top: 10rpx;
-	text {
-		color: $font-color;
-	}
-}
-
-.pink_time {
-	font-size: 26rpx;
-	color: #909399;
-}
-
-.pink_name {
-	font-size:30rpx;
-	color:#333333;
-	margin-left: 20rpx;
-}
-.More {
-	width: 100%;
-	line-height: 2;
-	background-color: #fc2a3f;
-	font-size:$font-lg;
-	margin: 0 auto;
-	text-align: center;
-	color: #ffffff;
-	// border-radius: 50rpx;
-}
-.mask {
-	z-index: 999;
-	width: 100%;
-	height: 100%;
-	position: fixed;
-	top: 0;
-	left: 0;
-	text-align: center;
-	background-color: rgba(0, 0, 0, 0.5);
-	image {
-		width: 100%;
-		height: 100%;
-		opacity: 0.8;
-	}
-}
-</style>

+ 0 - 934
pages/product/groupBooking/productGroup.vue

@@ -1,934 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 轮播图 -->
-		<top-swiper :imgList="imgList"></top-swiper>
-		<!-- 拼团倒计时 -->
-		<group-time :goodsObjact="goodsObjact" :key='goodsObjact.product_price' :seckillObj="seckillObj"></group-time>
-		<!-- 拼团标题 -->
-		<group-content :goodsObjact="goodsObjact"></group-content>
-		<!-- 拼团到货时间及优惠 -->
-		<discounts :mark='goodsObjact.mark' :Info="goodsObjact.info" @clickCoupon="Getcoupon" :showCoupon='false'></discounts>
-		<!-- 规格信息 -->
-		<!-- <fresh-detail :goodsObjact="goodsObjact"></fresh-detail> -->
-		<!-- <view class="uni-padding-wrap pinklistbox" v-if="pinkTlist.length > 0">
-			<view class="pinklist">
-				<view v-for="(ls, ind) in showlist">
-					<view class="flex pinklist_list">
-						<view class="pink_img"><image :src="ls.avatar"></image></view>
-						<view class="pink_name">{{ ls.nickname }}</view>
-						<view class="pink_tpl">
-							<view class="pink_people">
-								还差
-								<text>{{ ls.count }}</text>
-								人拼团
-							</view>
-						</view>
-						<view class="pint" @click="groupBooking(ls.id)">
-							去拼团
-							<text class="iconfont iconenter"></text>
-						</view>
-					</view>
-				</view>
-			</view>
-			<view class="More" @click="clickMore" v-if="more">查看更多</view>
-		</view> -->
-		<!-- <view class="ping-plan">
-			<view class="participate-7 flex-between-center">
-				<view class="participate-7-1">
-					<text class="word" v-if="pink_type == 1">AA团</text>
-					<text class="word" v-else>达人团</text>
-					<text>玩法</text>
-				</view>
-				<view class="participate-7-1" @click="ToRule()">
-					<text class="word1">详细规则</text>
-					<image src="../../../static/img/img74.png"></image>
-				</view>
-			</view>
-			<view class="participate-8 flex-between-center">
-				<view class="participate-8-1">
-					<image class="img1" src="https://shicai.liuniu946.com/img/img76.png"></image>
-					<view class="word-1">开团/参团</view>
-					<view class="word-2">拼团享低价</view>
-				</view>
-				<image src="https://shicai.liuniu946.com/img/img75.png"></image>
-				<view class="participate-8-1">
-					<image class="img2" src="https://shicai.liuniu946.com/img/img77.png"></image>
-					<view class="word-1">邀请邻里参团</view>
-					<view class="word-2">分享优惠多</view>
-				</view>
-				<image src="https://shicai.liuniu946.com/img/img75.png"></image>
-				<view class="participate-8-1">
-					<image class="img3" src="https://shicai.liuniu946.com/img/img78.png"></image>
-					<view class="word-1">人满发货</view>
-					<view class="word-2">人不满退款</view>
-				</view>
-			</view>
-		</view> -->
-		
-		<!-- 大家都在拼 达人团显示 -->
-		<!-- <now-list v-if="pink_type == 2" :recommendedlist="recommendedlist"></now-list> -->
-		
-		
-		<!-- 图文详情 -->
-		<content-text :description="description"></content-text>
-
-		<!-- 底部高度撑开 -->
-		<view class="contentBottomHeight"></view>
-		<!-- 底部操作菜单 -->
-		<view >
-			<view >
-				<group-bottom :peoplePrize='goodsObjact.people_prize' @buy="openPinkT" @specOPne="specOPne" :seckillObj="seckillObj" :many='many'></group-bottom>
-			</view>
-		</view>
-		<!-- 规格-模态层弹窗 -->
-		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec()">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer attr-content" @click.stop="stopPrevent">
-				<view class="a-t">
-					<image :src="actionImage"></image>
-					<view class="right">
-						<text class="name">{{ goodsObjact.store_name }}</text>
-						<text class="price">¥{{ actionPrice * goodsNumber }}</text>
-						<text class="stock">库存:{{ goodsStore }}件</text>
-						<view class="selected" v-if="specList != ''">
-							已选:
-							<text class="selected-text" v-for="(sItem, sIndex) in specSelected" :key="sIndex">{{ sItem }}</text>
-						</view>
-					</view>
-				</view>
-				<view v-for="(item, index) in specList" :key="index" class="attr-list">
-					<text>{{ item.attr_name }}</text>
-					<view class="item-list">
-						<text
-							v-for="(childItem, childIndex) in item.attr_value"
-							:key="childIndex"
-							class="tit"
-							:class="{ selected: childItem.check }"
-							@click="selectSpec(childItem, item, index)"
-						>
-							{{ childItem.attr }}
-						</text>
-					</view>
-				</view>
-				<!-- <view class="attr-list">
-					<text>购买数量</text>
-					<view class="item-list">
-						<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" v-show="buys_show">完成</button>
-				<button class="btn" style="background-color: #999999;" v-show="buys_shows">售罄</button>
-			</view>
-		</view>
-		<!-- 返回按钮 -->
-		<return-button></return-button>
-
-	</view>
-</template>
-
-<script>
-	import { nowPinkLst } from '@/api/order.js';
-	import {
-		goodsDetail,
-		cartAdd,
-		collectAdd,
-		collectDel,
-		seckillGoods,
-		groupGoods
-	} from '@/api/product.js';
-	import {
-		mapState
-	} from 'vuex';
-	import store from '@/store/index.js';
-	import {
-		saveUrl
-	} from '@/utils/loginUtils.js';
-	import {
-		timeComputed
-	} from '@/utils/rocessor.js';
-	// #ifdef H5
-	import {
-		weixindata
-	} from '@/utils/wxAuthorized';
-	// #endif
-	// 头部轮播图
-	import topSwiper from '../common/topSwiper.vue';
-	// 拼团倒计时
-	import groupTime from '../common/groupTime.vue';
-	// 拼团标题
-	import groupContent from '../common/groupContent.vue';
-	// 拼团到货时间及优惠
-	import discounts from '../common/discounts.vue';
-	// 规格信息
-	import freshDetail from '../common/freshDetail.vue';
-	// 图文详情
-	import contentText from '../common/contentText.vue';
-	// 底部按钮
-	import groupBottom from '../common/groupBottom.vue';
-	// 返回按钮
-	import returnButton from '@/components/returnButton.vue';
-	// 大家还在拼
-	import NowList from '@/components/newlist/nowList.vue';
-	export default {
-		components: {
-			topSwiper,
-			groupTime,
-			groupContent,
-			discounts,
-			freshDetail,
-			contentText,
-			groupBottom,
-			returnButton,
-			NowList
-		},
-		data() {
-			return {
-				goodsStore: 0, //选中库存
-				specList: [],
-				buys_show: true,
-				buys_shows: false,
-				specSelected: [], //选中的分类
-				reply: '', //评论
-				list: '', //商品详情的数据
-				type: 1, //默认支付方式add为
-				goodsNumber: 1, //购买数量
-				goodsid: '', //商品id
-				description: '', //商品描述
-				goodsObjact: {}, //保存商品数据
-				//图片循环
-				imgList: [],
-				// 对比对象
-				actionPrice: 0, //默认选中商品价格
-				actionImage: '', //默认选中图片
-				good_list: '', //猜你喜欢列表
-				goodsNumberMax: 0, //最大可购买数量
-				many:1,//1是单规格  2是多规格
-				// 倒计时数据保存
-				seckillObj: {
-					stopTime: 0, //结束时间
-					stop: false, //是否结束
-					stopTimeH: 0, //小时
-					stopTimeM: 0, //分钟
-					stopTimeS: 0, //秒钟
-					stopTimeD: 0, //天
-					upTime: 0 //更新组件内部组件用
-				},
-				// 拼团数据保存
-				pink: {
-					id: '', //拼团编号
-					uid: '', //用户编号
-					people: '', //拼团人数
-					price: '', //拼团价格
-					stop_time: '', //拼团结束时间
-					nickname: '', //团长昵称
-					avatar: '', //团长头像
-					count: '', //拼团剩余人数
-					h: '', //时
-					i: '', //分
-					s: '' //秒
-				},
-				userInfo: '',
-				pinkTlist: '', //拼团数据
-				more: true, //查看更多按钮
-				showlist: [],
-				pink_type: 1, //拼团类别
-				show: false, // 是否显示底部按钮
-				recommendedlist:[],// 大家都在拼
-				specClass: 'none' //显示隐藏弹窗
-			};
-
-		},
-		filters: {
-			parseIntTo(percent) {
-				percent = +percent * 100;
-				if (percent % 1 === 0) {
-					return percent;
-				} else {
-					percent = percent.toFixed(1);
-					return percent;
-				}
-			}
-		},
-		async onLoad(options) {
-			let obj = this;
-			obj.userInfo = uni.getStorageSync('userInfo');
-			//保存商品id
-			this.goodsid = options.id;
-			if (options.show) {
-				this.show = options.show;
-			}
-			console.log(this.show, 5656)
-			// 判断有无人邀请
-			if (options.spread) {
-				// 存储邀请人
-				uni.setStorageSync('spread', options.spread);
-			}
-			saveUrl();
-			// 家在数据
-			this.groupGoods();
-			return;
-			
-			// 注册邀请信息
-			// #ifdef H5
-			let bool = uni.getStorageSync('weichatBrowser') || '';
-			if (bool) {
-				weixindata();
-			}
-			// #endif
-		},
-		computed: {
-			...mapState(['weichatObj', 'baseURL', 'urlFile'])
-		},
-		// 分享
-		// onShareAppMessage(options) {
-		// 	// 设置菜单中的转发按钮触发转发事件时的转发内容
-		// 	let pages = getCurrentPages(); //获取加载的页面
-		// 	let currentPage = pages[pages.length - 1]; //获取当前页面的对象
-		// 	let url = currentPage.route; //当前页面url
-		// 	let item = currentPage.options; //如果要获取url中所带的参数可以查看options
-		// 	let shareObj = {
-		// 		title: this.goodsObjact.title + '   价格:' + this.goodsObjact.price, // 默认是小程序的名称(可以写slogan等)
-		// 		path: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径
-		// 		imageUrl: this.goodsObjact.image,
-		// 		success: function(res) {
-		// 			// 转发成功之后的回调
-		// 			if (res.errMsg == 'shareAppMessage:ok') {}
-		// 		},
-		// 		fail: function() {
-		// 			// 转发失败之后的回调
-		// 			if (res.errMsg == 'shareAppMessage:fail cancel') {
-		// 				// 用户取消转发
-		// 			} else if (res.errMsg == 'shareAppMessage:fail') {
-		// 				// 转发失败,其中 detail message 为详细失败信息
-		// 			}
-		// 		}
-		// 	};
-		// 	return shareObj;
-		// },
-		methods: {
-			// 跳转详细规则
-			ToRule() {
-				if( this.pink_type == 1 ) {
-					// AA团
-					uni.navigateTo({
-						url: '/pages/rule/AArule'
-					})
-				} else {
-					// 达人团
-					uni.navigateTo({
-						url: '/pages/rule/DaRrule'
-					})
-				}
-			},
-			//选择规格
-			selectSpec(item, arr, ind) {
-				arr.attr_value.forEach(function(e) {
-					e.check = false;
-				});
-				item.check = true;
-				let obj = this;
-				obj.specSelected[ind] = item.attr;
-				let str = obj.specSelected.join(',');
-				console.log(obj.productValue[str],116)
-				if (obj.productValue[str]) {
-					obj.buys_show = true;
-					obj.buys_shows = false;
-					obj.actionPrice = obj.productValue[str].price;
-					obj.goodsNumberMax = obj.productValue[str].stock;
-					obj.actionImage = obj.productValue[str].image;
-					obj.uniqueId = obj.productValue[str].unique;
-					obj.goodsStore = obj.productValue[str].stock;
-					// if (obj.goodsType == 2) {
-					// 	obj.goodsStore = obj.productValue[str].quota;
-					// } else {
-					// 	obj.goodsStore = obj.productValue[str].product_stock;
-					// }
-				} else {
-					(obj.buys_show = false), (obj.buys_shows = true);
-				}
-			},
-			// 立即购买
-			buy(item) {
-				let obj = this;
-				/* obj.toggleSpec();
-				this.specClass='show',
-				console.log(obj.list.productValue.默认.unique)
-				console.log(obj.chooseGoodsNumber,'chooseGoodsNumber')
-				return */
-				// 创建传值对象
-				console.log(obj.list.productValue);
-				console.log(obj.list);
-				let data = {
-					// cartNum: obj.goodsNumber, //商品数量
-					cartNum: obj.chooseGoodsNumber, //商品数量
-					uniqueId: obj.uniqueId, //商品标签
-					new: 1, //商品是否新增加到购物车1为不加入0为加入
-					mer_id: obj.shopId,
-					combinationId: obj.goodsid, //拼团编号
-					productId: obj.goodsObjact.product_id, //商品编号
-				};
-				this.specClass = 'none';
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						console.log(e);
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId + '&goodsType=' + obj.goodsType
-							});
-						}
-						if (obj.type == 2) {
-							obj.$api.msg('成功加入购物车');
-							obj.toggleSpec();
-						}
-					})
-					.catch(e => {
-						console.log(e);
-					}); 
-			},
-			// 去开团
-			ToKaiTuan(item) {
-				let id = item.id;
-				uni.navigateTo({
-					url: '/pages/product/productGroup?id=' + id
-				});
-			},
-			
-			// 跳转页面
-			navTo(url) {
-				uni.navigateTo({
-					url
-				});
-			},
-			// 查看更多
-			clickMore() {
-				this.showlist = this.pinkTlist;
-				console.log(this.showlist, 22);
-				this.more = false;
-			},
-			//去拼团
-			groupBooking(item) {
-				uni.navigateTo({
-					url: '/pages/groupBooking/groupdetails?id=' + item
-				});
-			},
-			// 获取拼团商品详情
-			groupGoods() {
-				let obj = this;
-				
-				// // 大家还在拼
-				// nowPinkLst({}).then(({data}) => {
-				// 	this.recommendedlist = data;
-				// })
-				
-				groupGoods({}, this.goodsid).then(function({
-					data
-				}) {
-					let goods = data.storeInfo;
-					obj.goodsObjact = goods;
-					console.log(obj.goodsObjact, 88)
-					console.log(Array.isArray(data.productValue), 99)
-					if(Array.isArray(data.productValue) != true){
-						obj.many = 2;
-						obj.specList = data.productAttr;//保存产品属性
-						obj.productValue = data.productValue; //保存属性值
-						obj.specSelected = []; //初始化默认选择对象
-						for (let i = 0; i < obj.specList.length; i++) {
-							// 设置默认数据
-							let attrValue = obj.specList[i].attr_value[0];
-							attrValue.check = true;
-							obj.specSelected.push(attrValue.attr);
-						}
-						let str = obj.specSelected.join(',');
-						console.log(str,'str')
-						// 设置默认值
-						
-						obj.actionPrice = obj.productValue[str].price;
-						obj.goodsNumberMax = obj.productValue[str].stock;
-						obj.actionImage = obj.productValue[str].image;
-						obj.uniqueId = obj.productValue[str].unique;
-						obj.goodsStore = obj.productValue[str].quota;
-					}else{
-						obj.many = 1;
-					}
-					console.log(obj.many,'obj.many')
-					if (obj.goodsObjact.description != null) {
-						obj.description = obj.goodsObjact.description.replace(/\<img/gi, '<img class="rich-img"');
-					}
-					obj.imgList = goods.images; //保存轮播图
-					obj.actionPrice = goods.price; //保存默认选中商品价格
-					obj.actionImage = goods.image_base; //保存默认选中商品图片
-					obj.goodsNumberMax = 1; //保存默认选中最大可购买商品数量
-					if (obj.goodsObjact.pink_type == 'AA团') {
-						obj.pink_type = 1;
-					} else {
-						obj.pink_type = 2;
-					}
-					obj.pinkTlist = data.pink;
-					obj.showlist = obj.pinkTlist.slice(0, 2);
-					if (obj.pinkTlist.length <= 2) {
-						obj.more = false;
-					}
-
-					// 保存结束时间
-					obj.seckillObj.stopTime = goods.stop_time * 1000;
-					// 获取当前时间
-					let acitonTime = new Date();
-					// 判断当前时间是否大于结束时间
-					if (acitonTime.getTime() > obj.seckillObj.stopTime) {
-						// 当前秒杀时间已经结束
-						obj.seckillObj.stop = true;
-					} else {
-						// 计算倒计时
-						let time = timeComputed(obj.seckillObj.stopTime)
-						// 倒计时数据保存
-						obj.seckillObj = {
-							stopTime: goods.stop_time * 1000, //结束时间
-							stop: false, //是否结束
-							stopTimeD: time.day, //天
-							stopTimeH: time.hours, //小时
-							stopTimeM: time.minutes, //分钟
-							stopTimeS: time.seconds, //秒钟
-							upTime: (new Date()).getTime()
-						}
-					}
-				});
-			},
-			// 立即购买
-			openPinkT(item) {
-				let obj = this;
-				obj.type = item;
-				// 创建传值对象
-				let data = {
-					cartNum: obj.goodsNumber, //商品数量
-					new: 1, //商品是否新增加到购物车1为不加入0为加入
-					combinationId: obj.goodsid,
-					productId: obj.goodsObjact.product_id
-				};
-				cartAdd(data)
-					.then(function(e) {
-						let da = e.data;
-						if (obj.type == 1) {
-							// 跳转到支付页
-							uni.navigateTo({
-								url: '/pages/order/createOrder?id=' + da.cartId+'&goodsType=2'
-							});
-						}
-					})
-					.catch(e => {
-						console.log(e);
-					});
-			},
-			specOPne(item) {
-				let obj = this;
-				obj.specClass = 'show';
-				console.log(obj.specClass,'this.specClass')
-			},
-			//规格弹窗开关
-			toggleSpec(str) {
-				if (this.specClass === 'show') {
-					this.specClass = 'hide';
-					setTimeout(() => {
-						this.specClass = 'none';
-					}, 250);
-				} else if (this.specClass === 'none') {
-					this.specClass = 'show';
-				}
-				// 判断是否为数字
-				if (typeof str == 'number') {
-					// 保存当前购买类型
-					this.type = str;
-				}
-			},
-			// 阻止触发上级事件
-			stopPrevent() {}
-		}
-	};
-</script>
-
-<style lang="scss">
-	/*  弹出层 */
-	.popup {
-		position: fixed;
-		left: 0;
-		top: 0;
-		right: 0;
-		bottom: 0;
-		z-index: 99;
-		&.show {
-			display: block;
-	
-			.mask {
-				animation: showPopup 0.2s linear both;
-			}
-	
-			.layer {
-				animation: showLayer 0.2s linear both;
-			}
-		}
-	
-		&.hide {
-			.mask {
-				animation: hidePopup 0.2s linear both;
-			}
-	
-			.layer {
-				animation: hideLayer 0.2s linear both;
-			}
-		}
-	
-		&.none {
-			display: none;
-		}
-	
-		.mask {
-			position: fixed;
-			top: 0;
-			width: 100%;
-			height: 100%;
-			z-index: 1;
-			background-color: rgba(0, 0, 0, 0.4);
-		}
-	
-		.layer {
-			position: fixed;
-			z-index: 99;
-			bottom: 0;
-			width: 100%;
-			min-height: 35vh;
-			border-radius: 10rpx 10rpx 0 0;
-			background-color: #fff;
-	
-			.btn {
-				height: 66rpx;
-				line-height: 66rpx;
-				border-radius: 100rpx;
-				background: $uni-color-primary;
-				font-size: $font-base + 2rpx;
-				color: #fff;
-				margin: 30rpx auto 20rpx;
-			}
-		}
-	
-		@keyframes showPopup {
-			0% {
-				opacity: 0;
-			}
-	
-			100% {
-				opacity: 1;
-			}
-		}
-	
-		@keyframes hidePopup {
-			0% {
-				opacity: 1;
-			}
-	
-			100% {
-				opacity: 0;
-			}
-		}
-	
-		@keyframes showLayer {
-			0% {
-				transform: translateY(120%);
-			}
-	
-			100% {
-				transform: translateY(0%);
-			}
-		}
-	
-		@keyframes hideLayer {
-			0% {
-				transform: translateY(0);
-			}
-	
-			100% {
-				transform: translateY(120%);
-			}
-		}
-	}
-	/* 规格选择弹窗 */
-	.attr-content {
-		padding: 25rpx 30rpx;
-	
-		.a-t {
-			display: flex;
-	
-			image {
-				width: 170rpx;
-				height: 170rpx;
-				flex-shrink: 0;
-				border-radius: 8rpx;
-			}
-	
-			.right {
-				display: flex;
-				flex-direction: column;
-				padding-left: 24rpx;
-				font-size: $font-sm + 2rpx;
-				color: $font-color-base;
-				line-height: 42rpx;
-				width: 75%;
-	
-				.price {
-					font-size: $font-lg;
-					color: $uni-color-primary;
-					margin: 10rpx 0rpx;
-				}
-	
-				.name {
-					font-size: 32rpx;
-					color: $font-color-dark;
-					height: 50rpx;
-					overflow: hidden;
-					text-overflow: ellipsis;
-					white-space: nowrap;
-					display: block;
-				}
-	
-				.selected-text {
-					margin-right: 10rpx;
-				}
-			}
-		}
-	
-		.attr-list {
-			display: flex;
-			flex-direction: column;
-			font-size: $font-base + 2rpx;
-			color: $font-color-base;
-			padding-top: 30rpx;
-			padding-left: 10rpx;
-		}
-	
-		.item-list {
-			padding: 20rpx 0 0;
-			display: flex;
-			flex-wrap: wrap;
-	
-			text {
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				background: #eee;
-				margin-right: 20rpx;
-				margin-bottom: 20rpx;
-				border-radius: 100rpx;
-				min-width: 60rpx;
-				height: 60rpx;
-				padding: 0 20rpx;
-				font-size: $font-base;
-				color: $font-color-dark;
-			}
-	
-			.selected {
-				background: #ddffdf;
-				color: $uni-color-primary;
-			}
-		}
-	}
-	
-	//默认商品底部高度
-	.goodsBottom {
-		height: 160rpx;
-	}
-
-	page {
-		background: #f0f0f0;
-	}
-
-	//秒杀、拼团底部高度
-	.contentBottomHeight {
-		height: 110rpx;
-		// background-color: #FFFFFF;
-	}
-
-	//默认商品底部高度
-	.goodsBottom {
-		height: 160rpx;
-	}
-
-	/deep/ .iconenter {
-		font-size: $font-base + 2rpx;
-		color: #888;
-	}
-
-	/deep/ .con_image {
-		width: 130rpx;
-		height: 130rpx;
-		display: inline-block;
-		padding: 15rpx;
-
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-
-	/* 商品详情中限制图片大小 */
-	/deep/ .rich-img {
-		width: 100% !important;
-		height: auto;
-	}
-
-	.pinklistbox {
-		background: #ffffff;
-		margin-top: 25rpx;
-		overflow: hidden;
-	}
-
-	.pink_num {
-		background: -webkit-linear-gradient(left, #fdf5f6, #fbebf6);
-		padding: 15rpx 25rpx;
-		font-size: 26rpx;
-		color: #dd524d;
-	}
-
-	.pint {
-		background: -webkit-linear-gradient(left, #ff1f4f, #ff0409);
-		padding: 10rpx 25rpx;
-		color: #ffffff;
-		font-size: 24rpx;
-		border-radius: 25rpx;
-
-		.iconenter {
-			font-size: 15px;
-			color: #ffffff;
-		}
-	}
-
-	.pinklist {
-		padding: 0rpx 25rpx;
-		padding-top: 45rpx !important;
-	}
-
-	.pinklist_list {
-		margin-bottom: 10rpx;
-	}
-
-	.pink_img {
-		width: 100rpx;
-		height: 100rpx;
-
-		image {
-			width: 100%;
-			height: 100%;
-			border-radius: 100%;
-		}
-	}
-
-	.pink_people {
-		font-size: 28rpx;
-
-		text {
-			color: #dd524d;
-		}
-	}
-
-	.pink_time {
-		font-size: 26rpx;
-		color: #909399;
-	}
-
-	.pink_name {
-		width: 200rpx;
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-		padding-left: 10rpx;
-		// background: #FC2A3F;
-		// height: 50rpx;
-	}
-
-	.More {
-		width: 100%;
-		line-height: 2;
-		background-color: #fc2a3f;
-		font-size: $font-lg;
-		margin: 0 auto;
-		text-align: center;
-		color: #ffffff;
-		// border-radius: 50rpx;
-	}
-
-	.ping-plan {
-		background-color: #FFFFFF;
-		padding: 25rpx 35rpx;
-		border-top: 15rpx solid #F3F3F4;
-		border-bottom: 15rpx solid #F3F3F4;
-	}
-
-	.participate-7 {
-		color: #000000;
-		font-size: 29rpx;
-		font-weight: 500;
-		padding-bottom: 25rpx;
-
-		.participate-7-1 {
-			.word {
-				color: #ff0a1a;
-			}
-
-			.word1 {
-				font-size: 25rpx;
-				color: #989aa0;
-			}
-
-			image {
-				width: 10rpx;
-				height: 20rpx;
-				margin-left: 15rpx;
-			}
-		}
-	}
-
-	//左右顶格加上下居中
-	.flex-between-center {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-	}
-
-	.participate-8 {
-		image {
-			width: 26rpx;
-			height: 12rpx;
-		}
-
-		.participate-8-1 {
-			text-align: center;
-
-			.img1 {
-				width: 43rpx;
-				height: 50rpx;
-			}
-
-			.img2 {
-				width: 43rpx;
-				height: 42rpx;
-			}
-
-			.img3 {
-				width: 60rpx;
-				height: 46rpx;
-			}
-
-			.word-1 {
-				font-size: 23rpx;
-				color: #000000;
-				line-height: 34rpx;
-			}
-
-			.word-2 {
-				font-size: 21rpx;
-				color: #91949B;
-				line-height: 34rpx;
-			}
-		}
-	}
-</style>

+ 0 - 414
pages/product/list.vue

@@ -1,414 +0,0 @@
-<template>
-	<view class="content">
-		<view class="navbar" :style="{ position: headerPosition, top: headerTop }">
-			<view class="nav-item" :class="{ current: filterIndex === 0 }" @click="tabClick(0)">综合排序</view>
-			<view class="nav-item" :class="{ current: filterIndex === 1 }" @click="tabClick(1)">
-				<text>销量优先</text>
-				<view class="p-box">
-					<text :class="{ active: numberOrder === 1 && filterIndex === 1 }" class="iconfont iconfold"></text>
-					<text :class="{ active: numberOrder === 2 && filterIndex === 1 }" class="iconfont iconfold xia"></text>
-				</view>
-			</view>
-			<view class="nav-item" :class="{ current: filterIndex === 2 }" @click="tabClick(2)">
-				<text>价格</text>
-				<view class="p-box">
-					<text :class="{ active: priceOrder === 1 && filterIndex === 2 }" class="iconfont iconfold"></text>
-					<text :class="{ active: priceOrder === 2 && filterIndex === 2 }" class="iconfont iconfold xia"></text>
-				</view>
-			</view>
-			<text class="cate-item iconfont iconapps" @click="toggleCateMask('show')"></text>
-		</view>
-		<view class="goods-list">
-			<view v-for="(item, index) in goodsList" :key="index" class="goods-item" @click="navToDetailPage(item)">
-				<view class="image-wrapper"><image :src="item.image" mode="aspectFill"></image></view>
-				<text class="title clamp">{{ item.title }}</text>
-				<view class="price-box">
-					<text class="price">{{ item.price }}</text>
-					<text>已售 {{ item.sales }}</text>
-				</view>
-			</view>
-		</view>
-		<uni-load-more :status="loadingType"></uni-load-more>
-
-		<view class="cate-mask" :class="cateMaskState === 0 ? 'none' : cateMaskState === 1 ? 'show' : ''" @click="toggleCateMask">
-			<view class="cate-content" @click.stop.prevent="stopPrevent" @touchmove.stop.prevent="stopPrevent">
-				<scroll-view scroll-y class="cate-list">
-					<view v-for="item in cateList" :key="item.id">
-						<view class="cate-item b-b two">{{ item.cate_name }}</view>
-						<view v-for="tItem in item.children" :key="tItem.id" class="cate-item b-b" :class="{ active: tItem.id == cateId }" @click="changeCate(tItem)">
-							{{ tItem.cate_name }}
-						</view>
-					</view>
-				</scroll-view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { getProducts } from '@/api/product.js';
-import { getCategoryList } from '@/api/product.js';
-export default {
-	components: {
-		uniLoadMore
-	},
-	data() {
-		return {
-			cateMaskState: 0, //分类面板展开状态
-			headerPosition: 'fixed',
-			headerTop: '0px',
-			loadingType: 'more', //加载更多状态
-			filterIndex: 0, //查询类型
-			numberOrder: 0, //1 销量从低到高 2销量从高到低
-			limit: 6, //每次加载数据条数
-			page: 0, //当前页数
-			cateId: 0, //已选三级分类id
-			priceOrder: 0, //1 价格从低到高 2价格从高到低
-			cateList: [], //分类列表
-			goodsList: [] //商品列表
-		};
-	},
-
-	onLoad(options) {
-		// #ifdef H5
-		this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
-		// #endif
-		this.cateId = options.tid;
-		this.loadCateList(options.fid, options.sid);
-		this.loadData();
-	},
-	onPageScroll(e) {
-		//兼容iOS端下拉时顶部漂移
-		if (e.scrollTop >= 0) {
-			this.headerPosition = 'fixed';
-		} else {
-			this.headerPosition = 'absolute';
-		}
-	},
-	//下拉刷新
-	onPullDownRefresh() {
-		this.loadData('refresh');
-	},
-	//监听页面是否滚动到底部加载更多
-	onReachBottom() {
-		this.loadData();
-	},
-	methods: {
-		//加载分类
-		async loadCateList(fid, sid) {
-			let obj = this;
-			getCategoryList({}).then(function(e) {
-				console.log(e);
-				e.data.forEach(function(e) {
-					if (e.id == fid) {
-						obj.cateList = e.children;
-						return;
-					}
-				});
-				console.log(obj.cateList);
-			});
-		},
-		//加载商品 ,带下拉刷新和上滑加载
-		async loadData(type = 'add', loading) {
-			let obj = this;
-			let data = {
-				page: obj.page,
-				limit: obj.limit,
-				sid: obj.cateId //分类id
-			};
-			//没有更多直接返回
-			if (type === 'add') {
-				if (obj.loadingType === 'nomore') {
-					return;
-				}
-				obj.loadingType = 'loading';
-			} else {
-				obj.loadingType = 'more';
-			}
-			if (type === 'refresh') {
-				// 清空数组
-				obj.goodsList = [];
-				obj.page = 1
-			}
-			if (this.filterIndex == 1) {
-				console.log( obj.salesOrder);
-				data.salesOrder = obj.numberOrder == 1 ? 'asc' : 'desc';
-			}
-			if (this.filterIndex == 2) {
-				console.log( obj.priceOrder);
-				data.priceOrder = obj.priceOrder == 1 ? 'asc' : 'desc';
-			}
-			getProducts(data).then(function(e) {
-				console.log(e.data);
-				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();
-					}
-				}
-			});
-		},
-		//筛选点击
-		tabClick(index) {
-			// 防止重复点击综合排序
-			if (this.filterIndex === 0 && this.filterIndex === index) {
-				return;
-			}
-			this.filterIndex = index;
-			// 判断是否为销量优先
-			if (index === 1) {
-				this.numberOrder = this.numberOrder === 1 ? 2 : 1;
-			}
-			// 判断是否为价格优先
-			if (index === 2) {
-				this.priceOrder = this.priceOrder === 1 ? 2 : 1;
-			}
-			// 初始化页数
-			this.page = 1;
-			// 初始化数组
-			uni.pageScrollTo({
-				duration: 300,
-				scrollTop: 0
-			});
-			this.loadData('refresh', 1);
-			uni.showLoading({
-				title: '正在加载'
-			});
-		},
-		//显示分类面板
-		toggleCateMask(type) {
-			let timer = type === 'show' ? 10 : 300;
-			let state = type === 'show' ? 1 : 0;
-			this.cateMaskState = 2;
-			setTimeout(() => {
-				this.cateMaskState = state;
-			}, timer);
-		},
-		//分类点击
-		changeCate(item) {
-			this.cateId = item.id;
-			// 显示右侧分类
-			this.toggleCateMask();
-			// 滚轮返回顶部
-			uni.pageScrollTo({
-				duration: 300,
-				scrollTop: 0
-			});
-			// 初始化查询页数
-			this.page = 1
-			// 重新加载数据
-			this.loadData('refresh', 1);
-			uni.showLoading({
-				title: '正在加载'
-			});
-		},
-		//详情
-		navToDetailPage(item) {
-			let id = item.id;
-			uni.navigateTo({
-				url: `/pages/product/product?id=${id}`
-			});
-		},
-		stopPrevent() {}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.content {
-	background: $page-color-base;
-}
-.content {
-	padding-top: 96rpx;
-}
-
-.navbar {
-	position: fixed;
-	left: 0;
-	top: var(--window-top);
-	display: flex;
-	width: 100%;
-	height: 80rpx;
-	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-mask {
-	position: fixed;
-	left: 0;
-	top: var(--window-top);
-	bottom: 0;
-	width: 100%;
-	background: rgba(0, 0, 0, 0);
-	z-index: 95;
-	transition: 0.3s;
-
-	.cate-content {
-		width: 630rpx;
-		height: 100%;
-		background: #fff;
-		float: right;
-		transform: translateX(100%);
-		transition: 0.3s;
-	}
-	&.none {
-		display: none;
-	}
-	&.show {
-		background: rgba(0, 0, 0, 0.4);
-
-		.cate-content {
-			transform: translateX(0);
-		}
-	}
-}
-.cate-list {
-	display: flex;
-	flex-direction: column;
-	height: 100%;
-	.cate-item {
-		display: flex;
-		align-items: center;
-		height: 90rpx;
-		padding-left: 30rpx;
-		font-size: 28rpx;
-		color: #555;
-		position: relative;
-	}
-	.two {
-		height: 64rpx;
-		color: #303133;
-		font-size: 30rpx;
-		background: #f8f8f8;
-	}
-	.active {
-		color: $base-color;
-	}
-}
-
-/* 商品列表 */
-.goods-list {
-	display: flex;
-	flex-wrap: wrap;
-	padding: 0 30rpx;
-	background: #fff;
-	.goods-item {
-		display: flex;
-		flex-direction: column;
-		width: 48%;
-		padding-bottom: 40rpx;
-		&: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-lg;
-		color: $font-color-dark;
-		line-height: 80rpx;
-	}
-	.price-box {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		padding-right: 10rpx;
-		font-size: 24rpx;
-		color: $font-color-light;
-	}
-	.price {
-		font-size: $font-lg;
-		color: $uni-color-primary;
-		line-height: 1;
-		&:before {
-			content: '¥';
-			font-size: 26rpx;
-		}
-	}
-}
-</style>

+ 0 - 612
pages/product/product.vue

@@ -1,612 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 轮播图 -->
-		<top-swiper :imgList="imgList"></top-swiper>
-		<!-- 标题 -->
-		<product-content :goodsObjact="goodsObjact"></product-content>
-		<!-- 拼货时间及优惠 -->
-		<!-- <discounts @clickCoupon="Getcoupon" :Info="goodsObjact.store_info" :showCoupon="true"></discounts> -->
-		<!-- 猜你喜欢 -->
-		<!-- <guess-like @Addcar='Addcar' @clickNavTo='navToDetailPage' :goodList = 'good_list||[]'></guess-like> -->
-		<!-- 评价 -->
-		<estimate @navTo="navTo('/pages/product/reply?id=' + goodsid)" v-if="reply" :reply="reply" :list="list"></estimate>
-		<!-- 规格信息 -->
-		<fresh-detail :goodsObjact="goodsObjact"></fresh-detail>
-		<!-- 图文详情 -->
-		<content-text :description="description"></content-text>
-		<!-- 底部高度撑开 -->
-		<view class="contentBottomHeight"></view>
-		<!-- 底部操作菜单 -->
-		<product-bottom @buy="buy" :goodsObjact="goodsObjact" :goodsid="goodsid" @specOPne="specOPne"></product-bottom>
-		<!-- 规格-模态层弹窗 -->
-		<view class="popup spec" :class="specClass" @touchmove.stop.prevent="stopPrevent" @click="toggleSpec">
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer attr-content" @click.stop="stopPrevent">
-				<view class="a-t">
-					<image :src="actionImage"></image>
-					<view class="right">
-						<text class="name">{{ goodsObjact.store_name }}</text>
-						<text class="price">¥{{ actionPrice * goodsNumber }}</text>
-						<text class="stock">库存:{{ goodsStore }}件</text>
-						<view class="selected" v-if="specList != ''">
-							已选:
-							<text class="selected-text" v-for="(sItem, sIndex) in specSelected" :key="sIndex">{{ sItem }}</text>
-						</view>
-					</view>
-				</view>
-				<view v-for="(item, index) in specList" :key="index" class="attr-list">
-					<text>{{ item.attr_name }}</text>
-					<view class="item-list">
-						<text
-							v-for="(childItem, childIndex) in item.attr_value"
-							:key="childIndex"
-							class="tit"
-							:class="{ selected: childItem.check }"
-							@click="selectSpec(childItem, item, index)"
-						>
-							{{ childItem.attr }}
-						</text>
-					</view>
-				</view>
-				<!-- <view class="attr-list">
-					<text>购买数量</text>
-					<view class="item-list">
-						<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" v-show="buys_show">完成</button>
-				<button class="btn" style="background-color: #999999;" v-show="buys_shows">售罄</button>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { goodsDetail, cartAdd } from '@/api/product.js';
-import { mapState } from 'vuex';
-import store from '@/store/index.js';
-import { saveUrl } from '@/utils/loginUtils.js';
-// #ifdef H5
-import { weixindata } from '@/utils/wxAuthorized';
-// #endif
-// 头部轮播图
-import topSwiper from './common/topSwiper.vue';
-// 标题
-import productContent from './common/productContent.vue';
-// 到货时间及优惠
-import discounts from './common/discounts.vue';
-// 规格信息
-import freshDetail from './common/freshDetail.vue';
-// 图文详情
-import contentText from './common/contentText.vue';
-// 底部按钮
-import productBottom from './common/productBottom.vue';
-// 猜你喜欢
-import guessLike from './common/guessLike.vue';
-// 评价
-import estimate from './common/estimate.vue';
-export default {
-	components: {
-		guessLike,
-		topSwiper,
-		productContent,
-		discounts,
-		freshDetail,
-		contentText,
-		productBottom,
-		estimate
-	},
-	data() {
-		return {
-			goodsStore: 0, //选中库存
-			specList: [],
-			buys_show: true,
-			buys_shows: false,
-			specSelected: [], //选中的分类
-			specClass: 'none', //显示隐藏弹窗
-			many: 1, //1是单规格  2是多规格
-			reply: '', //评论
-			list: '', //商品详情的数据
-			type: 1, //默认支付方式add为
-			goodsType: 0,
-			goodsNumber: 1, //购买数量
-			goodsid: '', //商品id
-			description: '', //商品描述
-			goodsObjact: {
-				percent: 1
-			}, //保存商品数据
-			//图片循环
-			imgList: [],
-			// 对比对象
-			actionPrice: 0, //默认选中商品价格
-			actionImage: '', //默认选中图片
-			good_list: '', //猜你喜欢列表
-			goodsNumberMax: 0, //最大可购买数量
-			// 倒计时数据保存
-			seckillObj: {
-				stopTime: 0, //结束时间
-				stop: false, //是否结束
-				stopTimeH: 0, //小时
-				stopTimeM: 0, //分钟
-				stopTimeS: 0, //秒钟
-				stopTimeD: 0, //天
-				upTime: 0 //更新组件内部组件用
-			},
-			// 拼团数据保存
-			pink: {
-				id: '', //拼团编号
-				uid: '', //用户编号
-				people: '', //拼团人数
-				price: '', //拼团价格
-				stop_time: '', //拼团结束时间
-				nickname: '', //团长昵称
-				avatar: '', //团长头像
-				count: '', //拼团剩余人数
-				h: '', //时
-				i: '', //分
-				s: '' //秒
-			},
-			userInfo: ''
-		};
-	},
-	filters: {
-		parseIntTo(percent) {
-			percent = +percent * 100;
-			if (percent % 1 === 0) {
-				return percent;
-			} else {
-				percent = percent.toFixed(1);
-				return percent;
-			}
-		}
-	},
-	async onLoad(options) {
-		let obj = this;
-		obj.userInfo = uni.getStorageSync('userInfo');
-		//保存商品id
-		this.goodsid = options.id;
-		this.goodsType = options.type;
-		// 判断有无人邀请
-		if (options.spread) {
-			// 存储邀请人
-			uni.setStorageSync('spread', options.spread);
-		}
-		saveUrl();
-		this.goodsDetail();
-		// 注册邀请信息
-		// #ifdef H5
-		let bool = uni.getStorageSync('weichatBrowser') || '';
-		if (bool) {
-			weixindata();
-		}
-		// #endif
-	},
-	computed: {
-		...mapState(['weichatObj', 'baseURL', 'urlFile'])
-	},
-	// 分享
-	onShareAppMessage(options) {
-		// 设置菜单中的转发按钮触发转发事件时的转发内容
-		let pages = getCurrentPages(); //获取加载的页面
-		let currentPage = pages[pages.length - 1]; //获取当前页面的对象
-		let url = currentPage.route; //当前页面url
-		let item = currentPage.options; //如果要获取url中所带的参数可以查看options
-		let shareObj = {
-			title: this.goodsObjact.store_name + '   价格:' + this.goodsObjact.price, // 默认是小程序的名称(可以写slogan等)
-			path: url + '?id=' + item.id + '&spread=' + this.userInfo.uid, // 默认是当前页面,必须是以‘/’开头的完整路径
-			imageUrl: this.goodsObjact.image,
-			success: function(res) {
-				// 转发成功之后的回调
-				if (res.errMsg == 'shareAppMessage:ok') {
-				}
-			},
-			fail: function() {
-				// 转发失败之后的回调
-				if (res.errMsg == 'shareAppMessage:fail cancel') {
-					// 用户取消转发
-				} else if (res.errMsg == 'shareAppMessage:fail') {
-					// 转发失败,其中 detail message 为详细失败信息
-				}
-			}
-		};
-
-		return shareObj;
-	},
-	methods: {
-		//选择规格
-		selectSpec(item, arr, ind) {
-			arr.attr_value.forEach(function(e) {
-				e.check = false;
-			});
-			item.check = true;
-			let obj = this;
-			obj.specSelected[ind] = item.attr;
-			let str = obj.specSelected.join(',');
-			// 获取当前选中的对象
-			if (obj.productValue[str]) {
-				obj.buys_show = true;
-				obj.buys_shows = false;
-				obj.actionPrice = obj.productValue[str].price;
-				obj.goodsNumberMax = obj.productValue[str].stock;
-				obj.actionImage = obj.productValue[str].image;
-				obj.uniqueId = obj.productValue[str].unique;
-				obj.goodsStore = obj.productValue[str].stock;
-			} else {
-				(obj.buys_show = false), (obj.buys_shows = true);
-			}
-			if (obj.goodsStore == 0) {
-				obj.buys_show = false;
-				obj.buys_shows = true;
-			}
-			obj.specSelected[ind] = item.attr;
-		},
-		// 打開彈窗
-		specOPne(type=1) {
-			let obj = this;
-			obj.specClass = 'show';
-			obj.type = type
-		},
-		//规格弹窗开关
-		toggleSpec(str) {
-			if (this.specClass === 'show') {
-				this.specClass = 'hide';
-				setTimeout(() => {
-					this.specClass = 'none';
-				}, 250);
-			} else if (this.specClass === 'none') {
-				this.specClass = 'show';
-			}
-			// 保存当前购买类型
-			this.type = str;
-		},
-		//领取优惠券
-		Getcoupon() {
-			uni.navigateTo({
-				url: '/pages/coupon/getcoupon'
-			});
-		},
-		//详情页
-		navToDetailPage(item) {
-			let id = item.id;
-			uni.navigateTo({
-				url: '/pages/product/product?id=' + id
-			});
-		},
-		// 跳转页面
-		navTo(url) {
-			uni.navigateTo({
-				url: '/pages/product/reply?id=' + this.goodsid
-			});
-		},
-		//加入购物车
-		Addcar(item) {
-			let obj = this;
-			cartAdd({
-				cartNum: '1', //商品数量
-				uniqueId: '', //商品标签
-				new: 0, //商品是否新增加到购物车1为不加入0为加入
-				mer_id: '',
-				productId: item.id //商品编号
-			})
-				.then(function(e) {
-					uni.showToast({
-						title: '成功加入购物车',
-						type: 'top',
-						duration: 500,
-						icon: 'none'
-					});
-
-					obj.goodsDetail();
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		goodsDetail() {
-			let obj = this;
-			// 获取普通商品信息
-			goodsDetail({}, this.goodsid).then(function({ data }) {
-				obj.list = data;
-				obj.good_list = data.good_list; //保存猜你喜欢列表
-				obj.reply = data.reply; //保存评论列表
-				let goods = data.storeInfo;
-				obj.goodsObjact = goods;
-				if (obj.goodsObjact.description != null) {
-					obj.description = obj.goodsObjact.description.replace(/\<img/gi, '<img class="rich-img"');
-				} //小程序商品详情图超出屏幕问题
-				obj.imgList = goods.slider_image; //保存轮播图
-				obj.specList = data.productAttr; //保存分类列表
-				if (Array.isArray(data.productValue) != true) {
-					obj.many = 2;
-					obj.specList = data.productAttr; //保存产品属性
-					obj.productValue = data.productValue; //保存属性值
-					obj.specSelected = []; //初始化默认选择对象
-					for (let i = 0; i < obj.specList.length; i++) {
-						// 设置默认数据
-						let attrValue = obj.specList[i].attr_value[0];
-						attrValue.check = true;
-						obj.specSelected.push(attrValue.attr);
-					}
-					let str = obj.specSelected.join(',');
-					console.log(str, 'str');
-					// 设置默认值
-					obj.actionPrice = obj.productValue[str].price;
-					obj.goodsNumberMax = obj.productValue[str].stock;
-					obj.actionImage = obj.productValue[str].image;
-					obj.uniqueId = obj.productValue[str].unique;
-					obj.goodsStore = obj.productValue[str].quota;
-				} else {
-					obj.many = 1;
-				}
-				obj.productValue = data.productValue; //保存分类查询数据
-				obj.actionPrice = goods.price; //保存默认选中商品价格
-				obj.actionImage = goods.image_base; //保存默认选中商品图片
-				obj.goodsNumberMax = goods.stock; //保存默认选中最大可购买商品数量
-				obj.shopId = data.mer_id; //保存商店id
-			});
-		},
-		// 立即购买
-		buy() {
-			let obj = this;
-			// 创建传值对象
-			let data = {
-					cartNum: obj.goodsNumber, //商品数量
-					new: 1,
-					productId: obj.goodsid,//商品编号
-					uniqueId:obj.uniqueId
-				};
-			
-			if (obj.type == 2) {
-				data.new = 0;
-			}
-			cartAdd(data)
-				.then(function(e) {
-					let da = e.data;
-					if (obj.type == 1) {
-						// 跳转到支付页
-						uni.navigateTo({
-							url: '/pages/order/createOrder?id=' + da.cartId
-						});
-					}
-					if (obj.type == 2) {
-						uni.showToast({
-							title: '成功加入购物车',
-							type: 'top',
-							duration: 2000,
-							icon: 'none'
-						});
-						obj.goodsDetail();
-					}
-					obj.toggleSpec()
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 阻止触发上级事件
-		stopPrevent() {}
-	}
-};
-</script>
-
-<style lang="scss">
-/*  弹出层 */
-.popup {
-	position: fixed;
-	left: 0;
-	top: 0;
-	right: 0;
-	bottom: 0;
-	z-index: 99;
-	&.show {
-		display: block;
-
-		.mask {
-			animation: showPopup 0.2s linear both;
-		}
-
-		.layer {
-			animation: showLayer 0.2s linear both;
-		}
-	}
-
-	&.hide {
-		.mask {
-			animation: hidePopup 0.2s linear both;
-		}
-
-		.layer {
-			animation: hideLayer 0.2s linear both;
-		}
-	}
-
-	&.none {
-		display: none;
-	}
-
-	.mask {
-		position: fixed;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		z-index: 1;
-		background-color: rgba(0, 0, 0, 0.4);
-	}
-
-	.layer {
-		position: fixed;
-		z-index: 99;
-		bottom: 0;
-		width: 100%;
-		min-height: 35vh;
-		border-radius: 10rpx 10rpx 0 0;
-		background-color: #fff;
-
-		.btn {
-			height: 66rpx;
-			line-height: 66rpx;
-			border-radius: 100rpx;
-			background: $uni-color-primary;
-			font-size: $font-base + 2rpx;
-			color: #fff;
-			margin: 30rpx auto 20rpx;
-		}
-	}
-
-	@keyframes showPopup {
-		0% {
-			opacity: 0;
-		}
-
-		100% {
-			opacity: 1;
-		}
-	}
-
-	@keyframes hidePopup {
-		0% {
-			opacity: 1;
-		}
-
-		100% {
-			opacity: 0;
-		}
-	}
-
-	@keyframes showLayer {
-		0% {
-			transform: translateY(120%);
-		}
-
-		100% {
-			transform: translateY(0%);
-		}
-	}
-
-	@keyframes hideLayer {
-		0% {
-			transform: translateY(0);
-		}
-
-		100% {
-			transform: translateY(120%);
-		}
-	}
-}
-/* 规格选择弹窗 */
-.attr-content {
-	padding: 25rpx 30rpx;
-
-	.a-t {
-		display: flex;
-
-		image {
-			width: 170rpx;
-			height: 170rpx;
-			flex-shrink: 0;
-			border-radius: 8rpx;
-		}
-
-		.right {
-			display: flex;
-			flex-direction: column;
-			padding-left: 24rpx;
-			font-size: $font-sm + 2rpx;
-			color: $font-color-base;
-			line-height: 42rpx;
-			width: 75%;
-
-			.price {
-				font-size: $font-lg;
-				color: $uni-color-primary;
-				margin: 10rpx 0rpx;
-			}
-
-			.name {
-				font-size: 32rpx;
-				color: $font-color-dark;
-				height: 50rpx;
-				overflow: hidden;
-				text-overflow: ellipsis;
-				white-space: nowrap;
-				display: block;
-			}
-
-			.selected-text {
-				margin-right: 10rpx;
-			}
-		}
-	}
-
-	.attr-list {
-		display: flex;
-		flex-direction: column;
-		font-size: $font-base + 2rpx;
-		color: $font-color-base;
-		padding-top: 30rpx;
-		padding-left: 10rpx;
-	}
-
-	.item-list {
-		padding: 20rpx 0 0;
-		display: flex;
-		flex-wrap: wrap;
-
-		text {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			background: #eee;
-			margin-right: 20rpx;
-			margin-bottom: 20rpx;
-			border-radius: 100rpx;
-			min-width: 60rpx;
-			height: 60rpx;
-			padding: 0 20rpx;
-			font-size: $font-base;
-			color: $font-color-dark;
-		}
-
-		.selected {
-			background: #ddffdf;
-			color: $uni-color-primary;
-		}
-	}
-}
-
-//默认商品底部高度
-.goodsBottom {
-	height: 160rpx;
-}
-page {
-	background: #f0f0f0;
-}
-//秒杀、拼团底部高度
-.contentBottomHeight {
-	height: 110rpx;
-}
-//默认商品底部高度
-.goodsBottom {
-	height: 160rpx;
-}
-/deep/ .iconenter {
-	font-size: $font-base + 2rpx;
-	color: #888;
-}
-/deep/ .con_image {
-	width: 130rpx;
-	height: 130rpx;
-	display: inline-block;
-	padding: 15rpx;
-	image {
-		width: 100%;
-		height: 100%;
-	}
-}
-/* 商品详情中限制图片大小 */
-/deep/ .rich-img {
-	width: 100% !important;
-	height: auto;
-}
-</style>

+ 0 - 278
pages/product/reply.vue

@@ -1,278 +0,0 @@
-<template>
-	<view class="container">
-		<view class="reply_btn flex_item">
-			<view class="btn" v-for="(item, index) in navList" :key="index" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">
-				{{ item.text }}({{ item.number }})
-			</view>
-		</view>
-		<swiper :current="tabCurrentIndex" class="swiper-box" :style="{ height: maxheight + 'px' }" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<scroll-view class="list-scroll-content" scroll-y @scrolltolower="loadDate">
-					<!-- 评论列表 -->
-					<view v-for="(item, index) in tabItem.orderList" :key="index" class="eva-box">
-						<view class="row-1 flex1">
-							<image class="portrait" :src="item.avatar" mode="aspectFill"></image>
-							<view class="right flex1">
-								<view>
-									<view class="name flex1">
-										<view>{{ item.nickname }}</view>
-										<!-- <image src="../../static/label/vip.png"></image> -->
-									</view>
-									<uniRate class="rate" disabled size="10" margin="1" :value="item.product_score" ></uniRate>
-								</view>
-								<view class="bot">
-									<text class="attr"></text>
-									<text class="time">{{ item.add_time }}</text>
-								</view>
-							</view>
-						</view>
-						<view class="con">{{ item.comment }}</view>
-						<view class="con_box">
-							<view class="con_image" v-for="ls in item.pics"><image :src="ls"></image></view>
-						</view>
-					</view>
-					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { reply_config, reply_list } from '@/api/product.js';
-import uniRate from '@/components/uni-rate/uni-rate.vue';
-export default {
-	components: {
-		uniRate
-	},
-	watch: {},
-	data() {
-		return {
-			maxheight: '',
-			id: '', //商品id
-			list: '', //评论列表
-			reply: '', //评论配置
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					number: '',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 5 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '好评',
-					loadingType: 'more',
-					number: '',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 5 //每次信息条数
-				},
-				{
-					state: 3,
-					text: '差评',
-					loadingType: 'more',
-					number: '',
-					orderList: [],
-					page: 1, //当前页数
-					limit:5 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '中评',
-					loadingType: 'more',
-					number: '',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 5 //每次信息条数
-				}
-			]
-		};
-	},
-	computed: {},
-	onReady() {
-		// 初始化获取页面宽度
-		uni.createSelectorQuery()
-			.select('.container')
-			.fields(
-				{
-					size: true
-				},
-				data => {
-					// 保存头部高度
-					this.maxheight = data.height - Math.floor((data.width / 750) * 145);
-				}
-			)
-			.exec();
-	},
-	onLoad(option) {
-		this.id = option.id;
-	},
-	onShow() {
-		let obj = this;
-		reply_config({}, this.id).then(function({ data }) {
-			obj.reply = data;
-			obj.navList[0].number = obj.reply.sum_count;
-			obj.navList[1].number = obj.reply.good_count;
-			obj.navList[2].number = obj.reply.poor_count;
-			obj.navList[3].number = obj.reply.in_count;
-		});
-		this.loadDate();
-	},
-	methods: {
-		async loadDate(source) {
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			if (navItem.loadingType === 'noMore') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-			reply_list(
-				{
-					type: state,
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				this.id
-			)
-				.then(({ data }) => {
-					let arr = data;
-					navItem.orderList = navItem.orderList.concat(arr);
-					console.log(navItem.orderList,111)
-					navItem.page++;
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// async GetList(){
-		// 	let obj = this;
-		// 	reply_list({}, obj.id).then(function({ data }) {
-		// 		// console.log(data)
-		// 		obj.list = data;
-		// 	});
-		// },
-		//跳转接口
-		navTo(url) {
-			uni.navigateTo({
-				url
-			});
-		},
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadDate('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #ffffff;
-	height: 100%;
-	.container {
-		height: 100%;
-		padding: 25rpx 25rpx;
-		padding-top: 120rpx;
-		.swiper-box {
-			// height: 100%;
-			.list-scroll-content {
-				height: 100%;
-			}
-		}
-	}
-}
-.reply_btn {
-	padding: 15rpx 0rpx;
-	.btn {
-		padding: 10rpx 25rpx;
-		font-size: 24rpx;
-		background: #f4f4f4;
-		margin-right: 25rpx;
-	}
-	.current {
-		background-color: #e93323 !important;
-		color: #ffffff !important;
-	}
-}
-.eva-box {
-	padding: 20rpx 0;
-	// height: 100%;
-	.row-1{
-		.portrait {
-			flex-shrink: 0;
-			width: 80rpx;
-			height: 80rpx;
-			border-radius: 100px;
-		}
-		.right {
-			flex: 1;
-			font-size: $font-base;
-			color: $font-color-base;
-			padding-left: 26rpx;
-			.name{
-				margin-bottom: 20rpx;
-				image{
-					width: 35rpx;
-					height: 25rpx;
-				}
-			}
-			.bot {
-				display: flex;
-				justify-content: space-between;
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-	.con {
-		font-size:24rpx;
-		font-weight:500;
-		color:rgba(84,84,86,1);
-		padding: 20rpx 0 35rpx 0;
-		letter-spacing: 3rpx;
-	}
-	.con_image {
-		width: 150rpx;
-		height: 150rpx;
-		display: inline-block;
-		margin-right: 20rpx;
-		image {
-			width: 100%;
-			height: 100%;
-		}
-	}
-}
-
-
-</style>

+ 0 - 452
pages/product/search.vue

@@ -1,452 +0,0 @@
-<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 uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { searchKeyword, getProducts } from '@/api/product.js';
-export default {
-	components: {
-		uniLoadMore
-	},
-	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>

+ 0 - 404
pages/product/seckill.vue

@@ -1,404 +0,0 @@
-<template>
-	<view class="seckillBox">
-		<scroll-view scroll-x="true" class="class-box flex b-t" :scroll-left="scrollLeft" :scroll-with-animation="true">
-			<view @click="tabClass(idx)" class="item" :style="{ width: topNavWidth }" v-for="(item, idx) in indexList" :key="idx">
-				<view class="time" :class="{ action: idx == classIndex }">{{ item.time }}</view>
-				<view class="status" :class="{ action: idx == classIndex }">{{ item.state }}</view>
-			</view>
-		</scroll-view>
-		<swiper class="list-Box" :current="classIndex" @change="swiperChange" duration="500">
-			<swiper-item class="list-item" v-for="(ls, idx) in indexList">
-				<view class=" b-b position-relative">
-					<view class="title-box flex ">
-						<view class="title-box-left">
-							<text v-if="ls.status == 1">抢购中先下先得哦!</text>
-							<text v-if="ls.status == 2">精品好货即将开抢!</text>
-							<text v-if="ls.status == 0">本场已结束,下次早点来哦!</text>
-						</view>
-						<view class="title-box-right flex">
-							<text class="tip" v-if="ls.status == 1">距离结束</text>
-							<text class="tip" v-if="ls.status == 2">距离开始</text>
-							<uni-countdown
-								color="#F9F9F8"
-								background-color="#666666"
-								v-if="ls.status == 1 || ls.status == 2"
-								:show-day="false"
-								:hour="ls.stopTimeH"
-								:minute="ls.stopTimeM"
-								:second="ls.stopTimeS"
-							></uni-countdown>
-						</view>
-					</view>
-				</view>
-				<scroll-view scroll-y="true" class="list" @scrolltolower="getList(classIndex)">
-					<view class="goodsList-item flex" :key="ind" v-for="(lss, ind) in ls.dataList">
-						<image :src="lss.image" lazy-load mode="scaleToFill"></image>
-						<view class="goodsList-content">
-							<view class="title clamp">
-								<text>{{ lss.title }}</text>
-							</view>
-							<view class="slider flex">
-								<view class="slider-box"><view class="slider-action" :style="{ width: lss.percent + '%' }"></view></view>
-								<view class="sales-nub">已抢{{ lss.percent + '%' }}</view>
-							</view>
-							<view class="goods-money flex">
-								<view class="money-box">
-									<view class="money">
-										<text class="font-size-sm">¥</text>
-										{{ lss.price }}
-									</view>
-									<view class="otMoney-box">
-										<text class="otMoney">¥{{ lss.ot_price }}</text>
-									</view>
-								</view>
-								<view @click="navProduct(ls, ind)" class="cart" :class="{ 'seckill-action': ls.status == 1 }">
-									{{ ls.status == 1 ? '去抢购' : ls.status == 2 ? '未开始' : '已结束' }}
-								</view>
-							</view>
-						</view>
-					</view>
-					<uni-load-more :status="ls.loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { getSeckillList, getSeckillClass } from '@/api/product.js';
-import uniCountdown from '@/components/uni-countdown/uni-countdown.vue';
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { timeComputed } from '@/utils/rocessor.js';
-export default {
-	components: {
-		uniCountdown,
-		uniLoadMore
-	},
-	data() {
-		return {
-			indexList: [], //分类列表
-			showTime: '', //显示的时间
-			showTImeId: '', //显示时间id用于查询数据
-			// 判断是否所有活动已经结束
-			stop: false, //活动是否已经结束
-			show: false, //是否显示活动
-			status: 0, //获取状态值1为有活动开始中 2为活动未开始 0为活动已经结束
-			topNavWidth: '25%', //设置导航默认宽度
-			classIndex: 0, //当前进行中的活动
-			itemWidht: 0 //顶部分类宽度
-		};
-	},
-	computed: {
-		// 计算左侧距离
-		scrollLeft() {
-			if (this.classIndex > 1) {
-				return this.itemWidht * (this.classIndex - 1.5);
-			} else {
-				return 0;
-			}
-		}
-	},
-	onLoad: function(e) {
-		// 载入分类
-		this.getClass();
-	},
-	methods: {
-		//抢购时间切换时触发效果
-		swiperChange(e) {
-			this.classIndex = e.target.current;
-			this.getList(this.classIndex, 'tabChange');
-		},
-		// 获取项目宽度
-		numClassWidht() {
-			uni.createSelectorQuery()
-				.select('.seckillBox')
-				.fields(
-					{
-						size: true
-					},
-					data => {
-						// 设置项目宽度
-						this.itemWidht = Math.floor((data.width / 750) * 187.5);
-					}
-				)
-				.exec();
-		},
-		// 切换当前选中的秒杀活动
-		tabClass(ind) {
-			// 保存当前选中的对象
-			this.classIndex = ind;
-		},
-		// 跳转到商品详情
-		navProduct(ls, ind) {
-			if (ls.status == 1) {
-				let data = ls.dataList[ind];
-
-				uni.navigateTo({
-					url: '/pages/product/product?id=' + data.id + '&type=1'
-				});
-			}
-		},
-		// 获取商品
-		getList(ind, source) {
-			// 获取数据对象
-			let date = this.indexList[ind];
-			console.log(date, source);
-			if (source === 'tabChange' && date.loaded === true) {              
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (date.loadingType === 'noMore') {
-				//防止重复加载
-				return;
-			}
-			if (date.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			date.loadingType = 'loading';
-			getSeckillList(
-				{
-					page: date.page,
-					limit: date.limit
-				},
-				date.id
-			)
-				.then(e => {
-					date.dataList.push(...e.data);
-					// 查询翻页增加
-					date.page++;
-					// 判断是否可以继续加载
-					if (date.limit == e.data.length) {
-						date.loadingType = 'more';
-					} else {
-						date.loadingType = 'noMore';
-					}
-					// 设置当前数据已加载完毕
-					this.$set(date, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 获取秒杀时间段
-		getClass() {
-			let obj = this;
-			getSeckillClass({})
-				.then(({ data }) => {
-					obj.indexList = data.seckillTime.map((e, ind) => {
-						console.log(e,'eeee')
-						// 初始化翻页页数
-						e.page = 1;
-						// 初始每次加载的数据条数
-						e.limit = 6;
-						// 创建储存订单数据
-						e.dataList = [];
-						// 初始化加载
-						// e.loadingType = 'more';
-						let ar = e;
-						// 判断是否为进行中的活动
-						if (ar.status === 1) {
-							// 计算倒计时时间
-							obj.timeComputed(ar.stop * 1000, ar);
-						} else {
-							// 获取距离开始还需要多少时间
-							let arTime = ar.time.split(':');
-							let h = arTime[0];
-							let m = arTime[1];
-							let time = new Date();
-							// 设置时间
-							time.setHours(h, m, 0);
-							// 计算倒计时时间
-							obj.timeComputed(time.getTime(), ar);
-						}
-
-						return e;
-					});
-					// 获取当前活动中的下标值
-					obj.classIndex = data.seckillTimeIndex;
-					// 获取当前显示中对象的数据
-					obj.$nextTick(() => {
-						obj.getList(obj.classIndex);
-					});
-					if (obj.indexList.length <= 4) {
-						// 当数量小于等于4的时候自适应宽度
-						obj.topNavWidth = 100 / obj.indexList.length + '%';
-					} else {
-						// 页面渲染完毕后加载scroll-view左侧距离
-						obj.$nextTick(() => {
-							obj.numClassWidht();
-						});
-					}
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		// 计算倒计时时间
-		timeComputed(da, ar) {
-			let obj = this;
-			// 计算时间,保存需要多少时间到期
-			let stopTime = timeComputed(da);
-			console.log(stopTime);
-			ar.stopTimeH = stopTime.hours;
-			ar.stopTimeM = stopTime.minutes;
-			ar.stopTimeS = stopTime.seconds;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.seckillBox {
-	min-height: 100%;
-	height: 100%;
-}
-// 头部时间段样式
-.class-box {
-	white-space: nowrap;
-	height: 60px;
-	.item {
-		text-align: center;
-		display: inline-block;
-		color: $font-color-base;
-		padding: 11.5px 5px;
-		background-color: #ffffff;
-		line-height: 1;
-		.time {
-			font-size: 16px;
-			padding-bottom: 3px;
-			&.action {
-				color: $color-red;
-			}
-		}
-		.status {
-			font-size: 12px;
-			margin: 0 auto;
-			width: 60px;
-			padding: 3px 0;
-			&.action {
-				color: #ffffff;
-				border-radius: 99px;
-				background-color: $color-red;
-			}
-		}
-	}
-}
-// 列表上方标题样式
-.title-box {
-	margin-top: 10px;
-	padding: 10px;
-	background-color: #ffffff;
-	.title-box-left {
-		font-size: 15px;
-		color: $font-color-base;
-	}
-	.title-box-right {
-		.tip {
-			font-size: 15px;
-			color: #999999;
-			padding-right: 5px;
-		}
-
-		/deep/ .uni-countdown__number {
-			border-radius: 3px;
-			width: 22px;
-		}
-		/deep/ .uni-countdown__splitor,
-		/deep/ .uni-countdown__number {
-			height: 20px;
-			line-height: 18px;
-		}
-	}
-}
-// 列表样式
-.list-Box {
-	height: calc(100% - 60px);
-	.list {
-		height: calc(100% - 55px);
-	}
-}
-// 商品列表
-$slider-color: #fe9398; //滑块左侧颜色
-.goodsList-item {
-	background-color: #ffffff;
-	padding: 30rpx;
-	border-bottom: 1px solid $border-color-light;
-	image {
-		flex-shrink: 0;
-		border-radius: $border-radius-sm;
-		height: 180rpx;
-		width: 180rpx;
-	}
-	.slider {
-		margin-top: 15rpx;
-		justify-content: flex-start;
-		.slider-box {
-			width: 196rpx;
-			border-radius: 99px;
-			border: 1px solid $slider-color;
-			height: 16rpx;
-			.slider-action {
-				background-color: $slider-color;
-				height: 100%;
-			}
-		}
-		.sales-nub {
-			color: $font-color-light;
-			font-size: 24rpx;
-			padding-left: 20rpx;
-		}
-	}
-	.goodsList-content {
-		margin-left: 20rpx;
-		flex-grow: 1;
-		height: 180rpx;
-		position: relative;
-		.title {
-			font-size: $font-base;
-			color: $font-color-dark;
-			font-weight: 500;
-			width: 0;
-			min-width: 100%;
-		}
-		.goods-money {
-			position: absolute;
-			left: 0;
-			bottom: 0;
-			width: 100%;
-			.money-box {
-				.money {
-					font-size: $font-lg + 10rpx;
-					color: $color-red;
-					font-weight: bold;
-				}
-				.otMoney-box {
-					font-size: $font-sm;
-					.otMoney {
-						color: $font-color-light;
-						padding-right: 20rpx;
-						text-decoration: line-through;
-					}
-					.sales {
-						color: $font-color-light;
-					}
-				}
-			}
-			.cart {
-				font-size: $font-base;
-				border-radius: 99px;
-				padding: 15rpx 30rpx;
-				line-height: 1;
-				color: #ffffff;
-				background-color: $color-gray;
-				&.seckill-action {
-					border: 1px solid $color-red;
-					background-color: $color-red;
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 200
pages/public/forget.vue

@@ -1,200 +0,0 @@
-<template>
-	<view class="container">
-		<view class="container_text">
-			<image class="banner-img" src="/static/img/img01.png" mode=" scaleToFill"></image>
-		</view>
-		<view class="loginTitle"><text>手机号登录</text></view>
-		<view class="login_text">
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
-				<view class="login_name"><input class="uni-input" v-model="phone" focus placeholder="请输入手机号" /></view>
-			</view>
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img06.png"></image></view>
-				<view class="login_name flex">
-					<input class="uni-input width" v-model="code" focus placeholder="请输入验证码" />
-					<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
-				</view>
-			</view>
-			<view>
-				<button type="green" @click="register" class="uni-button uni-button-green">登录</button>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-import { mapMutations } from 'vuex';
-import { verify, loginMobile, getUserInfo } from '@/api/login.js';
-export default {
-	data() {
-		return {
-			phone: '', //用户
-			code: '', //验证码
-			time: '', //保存倒计时对象
-			countDown: 0 //倒计时
-		};
-	},
-	onLoad() {},
-	watch: {
-		// 监听倒计时
-		countDown(i) {
-			if (i == 0) {
-				clearInterval(this.time);
-			}
-		}
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'login']),
-		// 手机登录
-		register() {
-			let obj = this;
-			if (obj.phone == '') {
-				obj.$api.msg('请输入电话号码');
-				return;
-			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.phone)) {
-				obj.$api.msg('请输入正确的手机号');
-				return;
-			}
-			if (obj.code == '') {
-				obj.$api.msg('请输入验证码');
-				return;
-			}
-
-			loginMobile({
-				phone: obj.phone, //账号
-				captcha: obj.code
-			}).then(function(e) {
-				uni.setStorageSync('token', e.data.token);
-				getUserInfo({}).then(e => {
-					obj.login();
-					// 保存返回用户数据
-					obj.setUserInfo(e.data);
-					//成功跳转首页
-					uni.switchTab({
-						url: '/pages/index/index'
-					});
-				});
-			}).catch((e) => {
-				console.log(e);
-			});
-		},
-		//发送验证码
-		verification() {
-			let obj = this;
-			if (this.phone == '') {
-				this.$api.msg('请输入电话号码');
-				return;
-			}
-			if (this.phone.length < 11) {
-				this.$api.msg('请输入正确的手机号');
-				return;
-			}
-			// 判断是否在倒计时
-			if (obj.countDown > 0) {
-				return false;
-			} else {
-				obj.countDown = 60;
-				obj.time = setInterval(() => {
-					obj.countDown--;
-				}, 1000);
-				//调用验证码接口
-				verify({
-					phone: obj.phone,
-					type: 'login'
-				})
-					.then(({ data }) => {})
-					.catch(err => {
-						console.log(err);
-					});
-			}
-		},
-		login() {
-			//返回登录
-			uni.navigateTo({
-				url: '/pages/public/login'
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.container {
-	width: 100%;
-	height: 100%;
-	background-size: 100%;
-}
-.container_text {
-	width: 100%;
-	height: 500rpx;
-	top: 0rpx;
-	.banner-img {
-		width: 100%;
-		height: 100%;
-	}
-}
-.login_text {
-	margin: auto 30rpx;
-	position: relative;
-	padding: 100rpx 102rpx;
-	background-color: #ffffff;
-	margin-top: -180rpx;
-	border-radius: 20rpx;
-	.login_input {
-		border-bottom: 1px solid #f0f0f0;
-		margin-bottom: 65rpx;
-		.login_img image {
-			height: 35rpx;
-			width: 29rpx;
-			margin-right: 20rpx;
-		}
-		.uni-input {
-			text-align: left;
-			width: 470rpx;
-			font-size: 28rpx !important;
-		}
-		.login_name {
-			color: #333333;
-			.width {
-				width: 325rpx !important;
-			}
-			.code {
-				color: #5dbc7c;
-				font-size: 23rpx;
-				border-left: 1px solid #eeeeee;
-				width: 150rpx;
-				flex-shrink: 0;
-				text-align: center;
-			}
-		}
-	}
-	.uni-button-green {
-		color: #ffffff;
-		background-color: #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-	}
-	.uni-button {
-		height: 85rpx;
-		line-height: 85rpx;
-	}
-}
-.loginTitle {
-	position: absolute;
-	top: 250rpx;
-	width: 100%;
-	text-align: center;
-	color: white;
-	font-size: 40rpx;
-}
-
-uni-button {
-	height: 80rpx !important;
-	line-height: 80rpx !important;
-}
-
-</style>

+ 0 - 386
pages/public/login.vue

@@ -1,386 +0,0 @@
-<template>
-	<view class="container">
-		<view class="container_text">
-			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
-		</view>
-		<view class="loginTitle"><text>登录</text></view>
-		<view class="login_text">
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
-				<view class="login_name"><input class="uni-input" v-model="username" focus placeholder="请输入手机号" /></view>
-			</view>
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="password" v-model="passward" focus placeholder="请输入密码" /></view>
-			</view>
-			<view><button type="green" class="uni-button uni-button-green" @click="toLogin">登录</button></view>
-			<view><button type="green" class="uni-button uni-button-green uni-button-green-plain" plain="true" hover-class="none" @click="register">注册</button></view>
-			<navigator url="./forget"><view class="forget">忘记密码</view></navigator>
-			<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"><image src="/static/img/img05.png"></image></view>
-					<view class="weixin_text" @click="wecahtLogin">微信登录</view>
-					<!-- #endif -->
-					<!-- #ifdef APP-PLUS -->
-					<block v-if="!is_ios">
-						<view class="weixin" @click="wecahtLogin"><image src="/static/img/img05.png" mode="scaleToFill"></image></view>
-						<view class="weixin_text" @click="wecahtLogin">微信登录</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/icon/appleIcon.png" mode=" scaleToFill"></image>
-							<text class="weixin_text">通过Apple登录</text>
-						</view>
-					</block>
-					<!-- #endif -->
-				</view>
-			</view>
-</template>
-
-<script>
-import { mapMutations } from 'vuex';
-import { login} from '@/api/login.js';
-import { getUserInfo} from '@/api/user.js';
-// #ifdef APP-PLUS
-// applelogin接口需要开发编写,基础项目中可能没有
-import { applelogin } from '@/api/set.js';
-// loginWx接口需要开发编写,基础项目中可能没有
-import { loginWx } from '@/api/login.js';
-// #endif
-// #ifdef H5
-import { loginWinxin } from '@/utils/wxAuthorized';
-// #endif
-export default {
-	data() {
-		return {
-			username: '',
-			passward: '',
-			// #ifdef APP-PLUS
-			is_ios: false ,//判断是否为ios手机
-			is_apple_login:false,//是否有ios授权登录功能
-			// #endif
-		};
-	},
-	onLoad() {
-		let obj = this;
-		// #ifdef APP-PLUS
-		let system = uni.getStorageSync('platform');
-		// 判断是否为ios
-		if (system == 'ios') {
-			obj.is_ios = true;
-		}
-		uni.getSystemInfo({
-			success(e) {
-				if(+e.system.split('.')[0]>=13){
-					obj.is_apple_login=true;
-				}
-			}
-		})
-		// #endif
-	},
-	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) {
-					uni.getUserInfo({
-						provider: type,
-						success(es) {
-							if(type==='weixin'){
-								loginWx(es.userInfo)
-									.then(e => {
-										uni.setStorageSync('token', e.data.token);
-										getUserInfo({}).then(e => {
-											obj.login();
-											// 保存返回用户数据
-											obj.setUserInfo(e.data);
-											//成功跳转首页
-											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() {
-			let obj = this;
-			obj.logining = true;
-			if (obj.username == '') {
-				obj.$api.msg('请输入手机号');
-				return;
-			}
-			if (obj.passward == '') {
-				obj.$api.msg('请输入密码');
-				return;
-			}
-			login({
-				account: obj.username,
-				password: obj.passward
-			})
-				.then(function(e) {
-					uni.setStorageSync('token', e.data.token);
-					obj.$store.commit('hasLogin', true);
-					getUserInfo({}).then(e => {
-						obj.login();
-						// 保存返回用户数据
-						obj.setUserInfo(e.data);
-						let ur = uni.getStorageSync('present')|| '/pages/index/index';
-						//成功跳转首页
-						uni.switchTab({
-							url: ur,
-							fail(e) {
-								uni.navigateTo({
-									url: ur,
-									fail(e) {
-										uni.navigateTo({
-											url: '/pages/index/index',
-										});
-									}
-								});
-							}
-						});
-					});
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-		},
-		//跳转注册页
-		register() {
-			uni.navigateTo({
-				url: `/pages/public/register`
-			});
-		},
-		// 后退
-		navBack() {
-			uni.navigateBack();
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-	/* #ifdef APP-PLUS */
-	
-	.ios_login {
-		width: 260rpx;
-		border-radius: 12rpx;
-		justify-content: center;
-		border: 1px solid #212121;
-		margin: 24rpx auto;
-		padding: 10rpx;
-		background-color: #212121;
-		color: #ffffff;
-		.loginIcon {
-			width: 50rpx;
-			height: 50rpx;
-		}
-		.weixin_text {
-			line-height: 1;
-			margin-left: 20rpx;
-			color: #ffffff !important;
-		}
-	}
-	
-	/* #endif */
-	.ios_login {
-		width: 350rpx;
-		border-radius: 12rpx;
-		justify-content: center;
-		border: 1px solid #212121;
-		margin: 24rpx auto;
-		padding: 15rpx;
-		background-color: #212121;
-		color: #ffffff;
-		font-size: 32rpx;
-		.loginIcon {
-			font-size: 35rpx;
-			width: 35rpx;
-			height: 35rpx;
-		}
-		.weixin_text {
-			line-height: 1;
-			margin-left: 20rpx;
-			color: #ffffff !important;
-		}
-	}
-	
-page {
-	height: 100%;
-}
-.container {
-	width: 100%;
-	height: 100%;
-	background-size: 100%;
-}
-.container_text {
-	width: 100%;
-	height: 500rpx;
-	top: 0rpx;
-	.banner-img {
-		width: 100%;
-		height: 100%;
-	}
-}
-.login_text {
-	margin: auto 30rpx;
-	position: relative;
-	padding: 100rpx 102rpx;
-	background-color: #ffffff;
-	margin-top: -180rpx;
-	border-radius: 20rpx;
-	.login_input {
-		border-bottom: 1px solid #f0f0f0;
-		margin-bottom: 65rpx;
-		.login_img image {
-			height: 35rpx;
-			width: 29rpx;
-			margin-right: 20rpx;
-		}
-		.uni-input {
-			text-align: left;
-			width: 470rpx;
-			font-size: 28rpx !important;
-		}
-		.login_name {
-			color: #333333;
-		}
-	}
-
-	.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;
-	}
-
-	.uni-button-green {
-		color: #ffffff;
-		background-color: #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-	}
-	.uni-button-green-plain {
-		border: 1px solid #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-		color: #5dbc7c;
-		background-color: #ffffff;
-	}
-	.uni-button {
-		height: 85rpx;
-		line-height: 85rpx;
-	}
-}
-.loginTitle {
-	position: absolute;
-	top: 250rpx;
-	width: 100%;
-	text-align: center;
-	color: white;
-	font-size: 40rpx;
-}
-</style>

+ 0 - 281
pages/public/register.vue

@@ -1,281 +0,0 @@
-<template>
-	<view class="container">
-		<view class="container_text" >
-			<image class="banner-img" src="/static/img/img01.png" mode="scaleToFill"></image>
-		</view>
-		<view class="loginTitle"><text>注册</text></view>
-		<view class="login_text">
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img03.png"></image></view>
-				<view class="login_name"><input class="uni-input" v-model="phone" focus placeholder="请输入手机号" /></view>
-			</view>
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="password" v-model="password" focus placeholder="请输入密码" /></view>
-			</view>
-			<view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img04.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="password" v-model="repassword" focus placeholder="请重复输入密码" /></view>
-			</view>
-			<view class="login_input flex" style="display: none;">
-				<view class="login_img"><image src="/static/icon/img07.png"></image></view>
-				<view class="login_name"><input class="uni-input" type="text" v-model="invitation" focus placeholder="请输入邀请码" /></view>
-			</view>
-			<!-- <view class="login_input flex">
-				<view class="login_img"><image src="/static/icon/img06.png"></image></view>
-				<view class="login_name flex">
-					<input class="uni-input width" v-model="code" focus placeholder="请输入验证码" />
-					<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
-				</view>
-			</view> -->
-			<view><button type="green" @click="register" class="uni-button uni-button-green">注册账号</button></view>
-			<view><button class="uni-button uni-button-green uni-button-green-plain" type="green" plain="true" hover-class="none" @click="login">返回登录</button></view>
-		</view>
-	</view>
-</template>
-<script>
-import { register, verify } from '@/api/login.js';
-export default {
-	data() {
-		return {
-			phone: '', //用户
-			password: '', //密码
-			repassword: '',
-			invitation: '', //邀请码
-			code: '', //验证码
-			time: '', //保存倒计时对象
-			countDown: 0 ,//倒计时
-		};
-	},
-	onLoad() {
-		// 获取扫码邀请人id
-		this.invitation = uni.getStorageSync('spread')||'';
-	},
-	watch: {
-		// 监听倒计时
-		countDown(i) {
-			if (i == 0) {
-				clearInterval(this.time);
-			}
-		}
-	},
-	methods: {
-		// 注册
-		register() {
-			let obj = this;
-			if (obj.phone == '') {
-				obj.$api.msg('请输入电话号码');
-				return;
-			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.phone)) {
-				obj.$api.msg('请输入正确的手机号');
-				return;
-			}
-			if (obj.password == '') {
-				obj.$api.msg('请输入密码');
-				return;
-			}
-			if (obj.repassword == '') {
-				obj.$api.msg('请再次输入密码');
-				return;
-			}
-			if (obj.repassword != obj.password) {
-				obj.$api.msg('两次密码不正确');
-				return;
-			}
-			// if ((obj.invitation = '')) {
-			// 	obj.$api.msg('请输入邀请码');
-			// 	return;
-			// }
-			// if (obj.code == '') {
-			// 	obj.$api.msg('请输入验证码');
-			// 	return;
-			// }
-			register({
-				account: obj.phone, //账号
-				// captcha: obj.code, //验证码
-				password: obj.password ,//密码
-				spread:this.invitation//上级推广人
-			}).then(function(e) {
-				uni.showToast({
-					title:'注册成功',
-					duration:2000,
-					position:'top'
-				});
-				setTimeout(function () {
-					uni.navigateTo({
-						url: '/pages/public/login'
-					});
-				},1000)
-				
-			});
-			//调用注册接口,成功跳转登录页
-		},
-		//发送验证码
-		verification() {
-			let obj = this;
-			if (this.phone == '') {
-				this.$api.msg('请输入电话号码');
-				return;
-			}
-			if (this.phone.length < 11) {
-				this.$api.msg('请输入正确的手机号');
-				return;
-			}
-			// 判断是否在倒计时
-			if (obj.countDown > 0) {
-				return false;
-			} else {
-				obj.countDown = 60;
-				obj.time = setInterval(() => {
-					obj.countDown--;
-				}, 1000);
-				//调用验证码接口
-				verify({
-					phone: obj.phone,
-					type: 'register'
-				})
-					.then(({ data }) => {})
-					.catch(err => {
-						console.log(err);
-					});
-			}
-		},
-		login() {
-			//返回登录
-			uni.navigateTo({
-				url: '/pages/public/login'
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.container {
-	width: 100%;
-	height: 100%;
-	background-size: 100%;
-}
-.container_text {
-	width: 100%;
-	height: 500rpx;
-	top: 0rpx;
-	.banner-img {
-		width: 100%;
-		height: 100%;
-	}
-}
-.login_text {
-	margin: auto 30rpx;
-	position: relative;
-	padding: 100rpx 102rpx;
-	background-color: #ffffff;
-	margin-top: -180rpx;
-	border-radius: 20rpx;
-	.login_input {
-		border-bottom: 1px solid #f0f0f0;
-		margin-bottom: 65rpx;
-		.login_img image {
-			height: 35rpx;
-			width: 29rpx;
-			margin-right: 20rpx;
-		}
-		.uni-input {
-			text-align: left;
-			width: 470rpx;
-			font-size: 28rpx !important;
-		}
-		.login_name {
-			color: #333333;
-		}
-	}
-
-	.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;
-	}
-
-	.uni-button-green {
-		color: #ffffff;
-		background-color: #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-	}
-	.uni-button-green-plain {
-		border: 1px solid #5dbc7c;
-		margin: 40rpx 10rpx;
-		border-radius: 50rpx;
-		color: #5dbc7c;
-		background-color: #ffffff;
-	}
-	.uni-button {
-		height: 85rpx;
-		line-height: 85rpx;
-	}
-}
-.loginTitle {
-	position: absolute;
-	top: 250rpx;
-	width: 100%;
-	text-align: center;
-	color: white;
-	font-size: 40rpx;
-}
-
-.forget {
-	width: 100rpx;
-	font-size: 24rpx;
-	color: #ffffff;
-	margin: 0px auto;
-	border-bottom: 1px solid #ffffff;
-}
-.width {
-	width: 325rpx !important;
-}
-.code {
-	color: #5dbc7c;
-	font-size: 23rpx;
-	border-left: 1px solid #eeeeee;
-	width: 150rpx;
-	flex-shrink: 0;
-	text-align: center;
-}
-uni-button {
-	height: 80rpx !important;
-	line-height: 80rpx !important;
-}
-
-</style>
-

+ 0 - 291
pages/public/wxLogin.vue

@@ -1,291 +0,0 @@
-<template>
-	<view class="content">
-		<!-- #ifdef MP -->
-		<image class="bg-img" :src="/static/img/img09.png" mode=" scaleToFill"></image>
-		<view class="logo-img-box">
-			<image class="logo-img" src="/static/img/img10.png" mode=" aspectFit"></image>
-			<button class="userInfo" type="warn" open-type="getUserInfo" @getuserinfo="userInfoData">
-				<text class="iconfont iconweixin"></text>
-				<text>微信授权登录</text>
-			</button>
-		</view>
-		<!-- #endif -->
-		<view class="Mask" v-show="MaskShow">
-			<view class="Mask-box">
-				<view class="title">申请获取您的手机号</view>
-				<view class="text">为了方便您的取货和我们的送货,并获取更多优惠活动,需要您的手机授权</view>
-				<view class="btn_box">
-					<button class="weixin" @click="ToIndex()">取消</button>
-					<button class="weixin" open-type="getPhoneNumber" @getphonenumber="PhoneNumber">手机号授权</button>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-// #ifdef H5
-import { loginWinxin } from '@/utils/wxAuthorized';
-// #endif
-// #ifdef MP-WEIXIN
-import { wechatMpAuth } from '@/api/wx';
-// #endif
-import { mapMutations } from 'vuex';
-import { getUserInfo, bangding } from '@/api/login.js';
-export default {
-	data() {
-		return {
-			userInfo: {}, //授权用户信息
-			code: '', //授权code
-			loding: false, //判断是否在点击中
-			MaskShow: false // 手机号授权弹窗
-		};
-	},
-	onLoad(option) {
-		this.loadData();
-	},
-	methods: {
-		loadData() {
-			// #ifdef H5
-			loginWinxin();
-			// #endif
-		},
-		// #ifndef H5
-		// 用户确认授权
-		userInfoData(e) {
-			const that = this;
-			// #ifdef MP-WEIXIN
-			if (!this.loding) {
-				wx.getUserProfile({
-					desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
-					success: res => {
-						that.userInfo = res;
-						that.loadMp();
-					},
-					fail: err => {
-						console.log('getUserProfile出错', err);
-					}
-				});
-			}
-			// #endif
-		},
-		// #endif
-		// #ifdef MP-WEIXIN
-		loadMp(option) {
-			let obj = this;
-			obj.loding = true;
-			// 获取登录授权页数据
-			let user = obj.userInfo;
-			// 获取推广人id
-			let spread_spid = uni.getStorageSync('spread') || '';
-			// let spread_code = uni.getStorageSync('spread_code') || '';
-			uni.showLoading({
-				title: '授权中',
-				mask: true
-			});
-			wx.login({
-				success(e) {
-					wechatMpAuth({
-						code: e.code,
-						iv: user.iv,
-						encryptedData: user.encryptedData,
-						spread_spid: spread_spid,
-						// #ifdef MP
-						spread_code: spread_code
-						// #endif
-					})
-						.then(({ data }) => {
-							obj.loding = false;
-							obj.wchatAuth(data);
-							console.log(data);
-						})
-						.catch(e => {
-							obj.loding = false;
-							uni.hideLoading();
-						});
-				},
-				fill: function(e) {
-					obj.loding = false;
-					console.log(e);
-				}
-			});
-		},
-		wchatAuth(data) {
-			let obj = this;
-			// 保存token
-			uni.setStorageSync('token', data.token);
-			// 获取用户基础信息
-			getUserInfo({})
-				.then(e => {
-					uni.hideLoading();
-					obj.login();
-					// 保存返回用户数据
-					obj.setUserInfo(e.data);
-					obj.ToIndex();
-					// if (e.data.phone == null || !e.data.phone ) {
-					// 	obj.MaskShow = true;
-					// } else {
-					// 	obj.ToIndex();
-					// }
-				})
-				.catch(e => {
-					uni.hideLoading();
-				});
-		},
-		// #endif
-		ToIndex() {
-			let obj = this;
-			let ur = uni.getStorageSync('present') || '/pages/index/index';
-			// 用于处理缓存bug
-			if (ur == 'pages/product/product') {
-				ur = '/pages/index/index';
-			}
-			uni.switchTab({
-				url: ur,
-				fail(e) {
-					uni.navigateTo({
-						url: ur,
-						fail(e) {
-							uni.navigateTo({
-								url: '/pages/index/index'
-							});
-						}
-					});
-				}
-			});
-		},
-		// 绑定手机号
-		PhoneNumber(e) {
-			let obj = this;
-			obj.MaskShow = false;
-			(obj.iv = e.detail.iv), (obj.encryptedData = e.detail.encryptedData);
-
-			uni.setStorageSync('code', obj.code);
-			bangding({
-				flag: 1,
-				cache_key: obj.cache_key,
-				code: obj.code,
-				iv: obj.iv,
-				encryptedData: obj.encryptedData
-			}).then(function(e) {
-				if (e.data.is_bind == 1) {
-					console.log('bangding1');
-					bangding({
-						flag: 1,
-						cache_key: obj.cache_key,
-						code: obj.code,
-						iv: obj.iv,
-						encryptedData: obj.encryptedData,
-						step: 1
-					})
-						.then(function(e) {
-							// 获取用户基础信息
-							obj.GetUser();
-							obj.$api.msg(e.msg);
-							obj.$nextTick(function() {
-								obj.ToIndex();
-							});
-						})
-						.catch(e => {
-							console.log(e);
-						});
-				} else {
-					console.log('bangding2');
-					obj.$api.msg(e.msg);
-					// 获取用户基础信息
-					obj.GetUser();
-					obj.$api.msg(e.msg);
-					obj.$nextTick(function() {
-						obj.ToIndex();
-					});
-				}
-			});
-		},
-		GetUser() {
-			// 获取用户基础信息
-			getUserInfo({})
-				.then(({ data }) => {
-					this.setUserInfo(data);
-					console.log(data, 11);
-					console.log(uni.getStorageSync('userInfo'), 55);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page,
-.content {
-	height: 100%;
-}
-
-.Mask {
-	position: fixed;
-	top: 0;
-	width: 100%;
-	height: 100%;
-	background-color: rgba(51, 51, 51, 0.7);
-	.Mask-box {
-		margin: auto;
-		margin-top: 320rpx;
-		padding: 50rpx 30rpx;
-		width: 90%;
-		height: 450rpx;
-		top: 500rpx;
-		left: 10%;
-		background-color: #ffffff;
-		border-radius: 15rpx;
-		.title {
-			text-align: center;
-			font-size: 35rpx;
-			font-weight: 700;
-		}
-		.text {
-			font-size: 30rpx;
-			color: #848484;
-			padding-top: 50rpx;
-		}
-		.btn_box {
-			margin: 70rpx 0 0 0;
-			display: flex;
-			align-items: center;
-			justify-content: space-between;
-		}
-	}
-}
-
-.weixin {
-	// background: linear-gradient(90deg, rgba(36, 214, 78, 1), rgba(45, 187, 89, 1));
-	background: $base-color;
-	width: 40%;
-	color: #ffffff;
-	border-radius: 50rpx;
-	border: none;
-	margin: 0 20rpx;
-}
-.bg-img,
-.logo-img-box {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-}
-.logo-img {
-	margin-top: 20vh;
-	margin-left: 176rpx;
-	width: 385rpx;
-	height: 394rpx;
-}
-.userInfo {
-	margin: 0 100rpx;
-	margin-top: 50rpx;
-	color: #ffffff;
-	border-radius: 99rpx;
-	background-color: $base-color !important;
-}
-</style>

+ 0 - 122
pages/redirect/redirect.vue

@@ -1,122 +0,0 @@
-<template>
-	<view>
-	</view>
-</template>
-<script>
-import { getUserInfo } from '@/api/user.js';
-import { mapMutations,mapState } from 'vuex';
-// #ifdef H5
-import { wechatAuth } from '@/api/wx';
-// #endif
-// #ifdef MP-WEIXIN
-import { wechatMpAuth } from '@/api/wx';
-// #endif
-export default {
-	computed: {
-		...mapState(['urlFile'])
-	},
-	onLoad(option) {
-		let obj = this;
-		// 判断是否需要保存定向地址
-		// #ifdef H5
-		this.loadH5()
-		// #endif
-		// #ifdef MP-WEIXIN
-		this.loadMp(option)
-		// #endif
-	},
-	methods: {
-		...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')||'';
-			wechatAuth({
-				code: code,
-				spread:spread,
-			}).then(({ data }) => {
-				obj.wchatAuth(data);
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
-				});
-			});;
-		},
-		// #endif
-		// #ifdef MP-WEIXIN
-		loadMp(option) {
-			let obj = this;
-			// 获取登录授权页数据
-			let user = obj.$api.prePage().userInfo;
-			// #ifndef MP
-			// 获取推广人id
-			let spread_spid = uni.getStorageSync('spread') || '';
-			// #endif
-			// #ifdef MP
-			// 小程序推广人
-			let spread_code = uni.getStorageSync('spread_code') || '';
-			// #endif
-			wechatMpAuth({
-				code: option.code,
-				iv: user.target.iv,
-				encryptedData: user.target.encryptedData,
-				// #ifndef MP
-				spread_spid: spread_spid,
-				// #endif
-				// #ifdef MP
-				spread_code:spread_code
-				// #endif
-			}).then(({ data }) => {
-				obj.wchatAuth(data);
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
-				});
-			});
-		},
-		// #endif
-		wchatAuth(data) {
-			let obj = this;
-			// 保存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'
-				}
-				uni.switchTab({
-					url: ur,
-					fail(e) {
-						uni.navigateTo({
-							url: ur,
-							fail(e) {
-								uni.navigateTo({
-									url: '/pages/index/index',
-								});
-							}
-						});
-					}
-				});
-			}).catch((e) => {
-				uni.showModal({
-					title: '错误',
-					content: JSON.stringify(e),
-					showCancel: false,
-				});
-			});;
-		}
-	}
-};
-</script>
-<style></style>

+ 0 - 208
pages/set/address.vue

@@ -1,208 +0,0 @@
-<template>
-	<view class="content b-t">
-		<view class="list" v-for="(item, index) in addressList" :key="index" @click="checkAddress(item)">
-			<view class="wrapper">
-				<view class="address-box">
-					<text class="name">{{ item.real_name }}</text>
-					<text class="mobile">{{ item.phone }}</text>
-				</view>
-				<view class="u-box">
-					<text class="address">{{ item.province + item.city + item.district }} {{ item.detail }}</text>
-				</view>
-			</view>
-			<view class="buttom">
-				<view class="default-buttom" @click.stop="defaultUp(item,index)">
-					<view class="iconfont iconroundcheckfill checkbox" :class="{ checked: item.is_default == 1 }"></view>
-					<text class="text">设为默认地址</text>
-				</view>
-				<view class="operation">
-					<view @click.stop="addAddress('edit', item)">
-						<text class="iconfont iconedit"></text>
-						<text class="text">编辑</text>
-					</view>
-					<view class="blank"></view>
-					<view @click.stop="delAddress(item)">
-						<text class="iconfont icondelete"></text>
-						<text class="text">删除</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<button class="add-btn" @click="addAddress('add')">新增地址</button>
-	</view>
-</template>
-
-<script>
-import { getAddressList,setAddressDefault,addressDel } from '@/api/user.js';
-export default {
-	data() {
-		return {
-			source: 0,
-			addressList: []
-		};
-	},
-	onLoad(option) {
-		this.source = option.source||0
-		this.loadAddress();
-	},
-	methods: {
-		// 加载地址
-		loadAddress() {
-			getAddressList({
-				page: 1,
-				limit: 100
-			}).then(({ data }) => {
-				this.addressList = data;
-			});
-		},
-		// 设为默认地址
-		defaultUp(data,ind) {
-			this.addressList=this.addressList.map((e) => {
-				e.is_default=0
-				return e
-			})
-			this.addressList[ind].is_default=1
-			setAddressDefault({
-				id: data.id
-			}).then(({ data }) => {
-				this.loadAddress();
-			}).catch((e) => {
-				console.log(e);
-			});
-		},
-		//删除地址
-		delAddress(item) {
-			addressDel({
-				id:item.id
-			}).then(({data})=>{
-				this.$api.msg('删除成功')
-			})
-			let s = this.addressList.indexOf(item);
-			this.addressList.splice(s, 1);
-		},
-		//选择地址
-		checkAddress(item) {
-			if (this.source == 1) {
-				//this.$api.prePage()获取上一页实例,在App.vue定义
-				this.$api.prePage().addressData = item;
-				uni.navigateBack();
-			}
-		},
-		// 添加地址
-		addAddress(type, item) {
-			uni.navigateTo({
-				url: `/pages/set/addressManage?type=${type}&data=${JSON.stringify(item)}`
-			});
-		},
-		//添加或修改成功之后回调
-		refreshList() {
-			// 重新加载地址
-			this.loadAddress()
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	padding-bottom: 120rpx;
-	padding-top: 20rpx;
-	background-color: $page-color-base;
-}
-.content {
-	position: relative;
-}
-.list {
-	align-items: center;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	margin: 20rpx;
-	margin-top: 0;
-	.buttom {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		padding-top: 10rpx;
-		.checkbox {
-			font-size: 44rpx;
-			line-height: 1;
-			padding: 4rpx;
-			color: $font-color-disabled;
-			background: #fff;
-			border-radius: 50px;
-		}
-		.checkbox.checked {
-			color: $base-color;
-		}
-		.default-buttom {
-			display: flex;
-			align-items: center;
-		}
-		.operation {
-			display: flex;
-			align-items: center;
-			.blank {
-				width: 30rpx;
-			}
-		}
-		.text {
-			padding-left: 10rpx;
-			font-size: 24rpx;
-			color: #666666;
-		}
-	}
-}
-.wrapper {
-	display: flex;
-	flex-direction: column;
-	flex: 1;
-	border-bottom: 1px solid #f0f0f0;
-	padding-bottom: 20rpx;
-}
-.address-box {
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	.address {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.mobile {
-		font-size: $font-base;
-		color: rgba(51, 51, 51, 1);
-	}
-}
-.u-box {
-	font-size: $font-base;
-	color: $font-color-light;
-	margin-top: 16rpx;
-	.name {
-		margin-right: 30rpx;
-	}
-}
-.icon-bianji {
-	display: flex;
-	align-items: center;
-	height: 80rpx;
-	font-size: 40rpx;
-	color: $font-color-light;
-	padding-left: 30rpx;
-}
-
-.add-btn {
-	position: fixed;
-	left: 30rpx;
-	right: 30rpx;
-	bottom: 16rpx;
-	z-index: 95;
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-}
-</style>

+ 0 - 219
pages/set/addressManage.vue

@@ -1,219 +0,0 @@
-<template>
-	<view class="content">
-		<view class="row b-b">
-			<text class="tit">联系人</text>
-			<input class="input" type="text" v-model="addressData.name" placeholder="收货人姓名" placeholder-class="placeholder" />
-		</view>
-		<view class="row b-b">
-			<text class="tit">手机号</text>
-			<input class="input" type="number" v-model="addressData.mobile" placeholder="收货人手机号码" placeholder-class="placeholder" />
-		</view>
-		<view class="row b-b">
-			<text class="tit">地址</text>
-			<pickerAddress class="input" @change="onCityClick">{{addressDetail||'请选择地址'}}</pickerAddress>
-			<text class="iconfont iconlocation"></text>
-		</view>
-		<view class="row b-b">
-			<text class="tit">门牌号</text>
-			<input class="input" type="text" v-model="addressData.area" placeholder="楼号、门牌" placeholder-class="placeholder" />
-		</view>
-
-		<uni-list class="margin-t-20">
-			<uni-list-item
-				title="设为默认"
-				:switch-checked="addressData.default"
-				:show-switch="true"
-				:show-arrow="false"
-				switch-color="#5dbc7c"
-				@switchChange="switchChange"
-			></uni-list-item>
-		</uni-list>
-
-		<button class="add-btn" @click="confirm">提交</button>
-	</view>
-</template>
-
-<script>
-import uniList from '@/components/uni-list/uni-list.vue';
-import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
-import uniPopup from '@/components/uni-popup/uni-popup.vue';
-import  pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
-import { addressEdit } from '@/api/user.js';
-export default {
-	components: {
-		uniList,
-		uniListItem,
-		pickerAddress,
-		uniPopup
-	},
-	data() {
-		return {
-			addressDetail: '',
-			addressData: {
-				name: '',
-				mobile: '',
-				address: {
-					province: '',
-					city: '',
-					district: ''
-				},
-				area: '',
-				default: false
-			}
-		};
-	},
-	onLoad(option) {
-		let title = '新增收货地址';
-		if (option.type === 'edit') {
-			title = '编辑收货地址';
-			let data = JSON.parse(option.data);
-			console.log(data);
-
-			this.addressData = {
-				name: data.real_name,
-				mobile: data.phone,
-				address: {
-					province: data.province,
-					city: data.city,
-					district: data.district
-				},
-				area: data.detail,
-				default: data.is_default == 1,
-				id: data.id
-			};
-			this.addressDetail = data.province + data.city + data.district;
-		}
-		this.manageType = option.type;
-		uni.setNavigationBarTitle({
-			title
-		});
-	},
-	methods: {
-		// 选中城市切换
-		onCityClick({data}) {
-			let address = this.addressData.address;
-			address.province = data[0];
-			address.city = data[1];
-			address.district = data[2];
-			this.addressDetail = data.join('');
-		},
-		//地图选择地址
-		chooseLocation() {
-			uni.chooseLocation({
-				success: data => {
-					console.log(data);
-					this.addressData.addressName = data.name;
-					this.addressData.address = data.name;
-				}
-			});
-		},
-		// 设置是否为默认地址
-		switchChange(e) {
-			this.addressData.default = e.value;
-		},
-		//提交
-		confirm() {
-			let obj = this;
-			let data = this.addressData;
-			if (!data.name) {
-				this.$api.msg('请填写收货人姓名');
-				return;
-			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(data.mobile)) {
-				this.$api.msg('请输入正确的手机号码');
-				return;
-			}
-			if (!data.address) {
-				this.$api.msg('请在地图选择所在位置');
-				return;
-			}
-			if (!data.area) {
-				this.$api.msg('请填写门牌号信息');
-				return;
-			}
-
-			//this.$api.prePage()获取上一页实例,可直接调用上页所有数据和方法,在App.vue定义
-			addressEdit({
-				real_name: data.name,
-				phone: data.mobile,
-				address: {
-					province: data.address.province,
-					city: data.address.city,
-					district: data.address.district
-				},
-				detail: data.area,
-				is_default: data.default,
-				id: data.id||"",
-				type:1
-			}).then(function(e) {
-				obj.$api.prePage().refreshList();
-				uni.showToast({
-					title:'提交成功',
-					duration:2000
-				});
-				setTimeout(function() {
-					uni.navigateBack();
-				}, 800);
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-	padding-top: 16rpx;
-}
-
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
-
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-.default-row {
-	margin-top: 16rpx;
-	.tit {
-		flex: 1;
-	}
-	switch {
-		transform: translateX(16rpx) scale(0.9);
-	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 60rpx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-.alert-box {
-	background-color: #ffffff;
-}
-</style>

+ 0 - 161
pages/set/password.vue

@@ -1,161 +0,0 @@
-<template>
-	<view class="container">
-		<view class="row b-b">
-			<text class="tit">手机号</text>
-			<input class="input" v-model="account" type="text" placeholder="请填写手机号" placeholder-class="placeholder" />
-		</view>
-		<view class="row b-b">
-			<text class="tit">验证码</text>
-			<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
-			<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
-		</view>
-		<view class="row b-b">
-			<text class="tit">新密码</text>
-			<input class="input" v-model="password" type="password" placeholder="请填写新密码" placeholder-class="placeholder" />
-		</view>
-		<button class="add-btn" :class="{'bg-gray':loding}" @click="loding?'':confirm()">提交</button>
-	</view>
-</template>
-
-<script>
-import { verify } from '@/api/login.js';
-import { mapState } from 'vuex';
-import { registerReset } from '@/api/set.js';
-export default {
-	data() {
-		return {
-			time: '', //保存倒计时对象
-			countDown: 0, //倒计时
-			account: '', //手机号
-			captcha: '', //验证码
-			password: '' ,//新密码
-			loding:false,//是否载入中
-		};
-	},
-	computed: {
-		...mapState(['userInfo'])
-	},
-	onLoad() {
-		if(this.userInfo.phone == null){
-			this.account = '';
-		}else{
-			this.account = this.userInfo.phone;
-			this.show = false;
-		}
-	},
-	watch: {
-		// 监听倒计时
-		countDown(i) {
-			if (i == 0) {
-				clearInterval(this.time);
-			}
-		}
-	},
-	methods: {
-		//发送验证码
-		verification() {
-			let obj = this;
-			if (this.account == '') {
-				this.$api.msg('请输入电话号码');
-				return;
-			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
-				this.$api.msg('请输入正确的手机号');
-				return;
-			}
-			// 判断是否在倒计时
-			if (obj.countDown > 0) {
-				return false;
-			} else {
-				obj.countDown = 60;
-				obj.time = setInterval(() => {
-					obj.countDown--;
-				}, 1000);
-				//调用验证码接口
-				verify({
-					phone: obj.account,
-					type: ''
-				})
-					.then(({ data }) => {})
-					.catch(err => {
-						console.log(err);
-					});
-			}
-		},
-		confirm(e) {
-			this.loding = true;
-			registerReset({
-				account: this.account,
-				captcha: this.captcha,
-				password: this.password,
-			})
-				.then(({ data }) => {
-					this.loding = false;
-					this.$api.msg('修改成功');
-				})
-				.catch(err => {
-					this.loding = false;
-					console.log(err);
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-}
-.container {
-	padding-top: 30rpx;
-}
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
-
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 60rpx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-.bg-gray{
-	background-color: $color-gray;
-}
-.code {
-	color: #5dbc7c;
-	font-size: 23rpx;
-	border-left: 1px solid #eeeeee;
-	width: 150rpx;
-	flex-shrink: 0;
-	text-align: center;
-}
-</style>

+ 0 - 161
pages/set/phone.vue

@@ -1,161 +0,0 @@
-<template>
-	<view class="container">
-		<view class="row b-b">
-			<text class="tit">手机号</text>
-			<input class="input" v-model="account" type="text" placeholder="请填写手机号" placeholder-class="placeholder" />
-		</view>
-		<view>
-			<view class="row b-b">
-				<text class="tit">验证码</text>
-				<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
-				<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
-			</view>
-			<button class="add-btn" :class="{ 'bg-gray': loding }" @click="loding ? '' : confirm()">提交</button>
-		</view>
-	</view>
-</template>
-
-<script>
-import { verify } from '@/api/login.js';
-import { mapState } from 'vuex';
-import { registerReset, binding } from '@/api/set.js';
-export default {
-	data() {
-		return {
-			time: '', //保存倒计时对象
-			countDown: 0, //倒计时
-			account: '', //手机号
-			captcha: '', //验证码
-			password: '', //新密码
-			loding: false //是否载入中
-		};
-	},
-	watch: {
-		// 监听倒计时
-		countDown(i) {
-			if (i == 0) {
-				clearInterval(this.time);
-			}
-		}
-	},
-	computed: {
-		...mapState(['userInfo'])
-	},
-	onLoad() {
-		if (this.userInfo.phone == null) {
-			this.account = '';
-		} else {
-			this.account = this.userInfo.phone;
-			this.show = false;
-		}
-	},
-	methods: {
-		//发送验证码
-		verification() {
-			let obj = this;
-			if (this.account == '') {
-				this.$api.msg('请输入电话号码');
-				return;
-			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
-				this.$api.msg('请输入正确的手机号');
-				return;
-			}
-			// 判断是否在倒计时
-			if (obj.countDown > 0) {
-				return false;
-			} else {
-				obj.countDown = 60;
-				obj.time = setInterval(() => {
-					obj.countDown--;
-				}, 1000);
-				//调用验证码接口
-				verify({
-					phone: obj.account,
-					type: 'BDING_CODE'
-				})
-					.then(({ data }) => {})
-					.catch(err => {
-						console.log(err);
-					});
-			}
-		},
-		confirm(e) {
-			let obj = this;
-			obj.loding = true;
-			binding({
-				phone: obj.account,
-				captcha: obj.captcha
-			})
-				.then(({ data }) => {
-					obj.$api.msg('绑定成功!');
-					setTimeout(function() {
-						obj.loding = false;
-						uni.switchTab({
-							url: '/pages/user/user'
-						});
-					}, 1000);
-				})
-				.catch(err => {
-					obj.loding = false;
-					console.log(err);
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-}
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
-
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
-	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 60rpx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-.bg-gray {
-	background-color: $color-gray;
-}
-.code {
-	color: #5dbc7c;
-	font-size: 23rpx;
-	border-left: 1px solid #eeeeee;
-	width: 150rpx;
-	flex-shrink: 0;
-	text-align: center;
-}
-</style>

+ 0 - 113
pages/set/set.vue

@@ -1,113 +0,0 @@
-<template>
-	<view class="container">
-		<uni-list>
-		    <uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')" ></uni-list-item>
-			<uni-list-item title="修改密码" @click="navTo('/pages/set/password')" ></uni-list-item>
-		    <uni-list-item title="实名认证" @click="navTo('/pages/set/phone')" ></uni-list-item>
-		    <uni-list-item title="收货地址" @click="navTo('/pages/set/address')" ></uni-list-item>
-		</uni-list>
-		<uni-list class="margin-t-20">
-		    <uni-list-item title="消息推送" :switch-checked='true' :show-switch="true" :show-arrow="false" switch-color='#5dbc7c'  @switchChange='switchChange'> 
-			</uni-list-item>
-		</uni-list>
-		
-		<uni-list class="margin-t-20">
-		    <uni-list-item title="清除缓存" ></uni-list-item>
-		    <uni-list-item title="检查更新" >
-				<template slot="right">
-					当前版本 1.0.3
-				</template>
-			</uni-list-item>
-		</uni-list>
-		<view class="list-cell log-out-btn" @click="toLogout">
-			<text class="cell-tit">退出登录</text>
-		</view>
-	</view>
-</template>
-
-<script>
-	import uniList from "@/components/uni-list/uni-list.vue"
-	import uniListItem from "@/components/uni-list-item/uni-list-item.vue"
-	import { logout } from '@/api/set.js';
-	import {  
-	    mapMutations  
-	} from 'vuex';
-	export default {
-		components: {
-			uniList,uniListItem
-		},
-		data() {
-			return {
-				
-			};
-		},
-		methods:{
-			...mapMutations('user',['logout']),
-			navTo(url){
-				uni.navigateTo({
-					url:url
-				})
-			},
-			//退出登录
-			toLogout(){
-				let obj = this;
-				uni.showModal({
-				    content: '确定要退出登录么',
-				    success: (e)=>{
-				    	if(e.confirm){
-							logout({}).then((e) => {
-								uni.navigateBack();
-							}).catch((e) => {
-								console.log(e);
-							})
-				    		obj.logout();
-				    	}
-				    }
-				});
-			},
-			//switch切换触发方法
-			switchChange(e){
-				console.log(e);
-				let statusTip = e.value ? '打开': '关闭';
-				this.$api.msg(`${statusTip}消息推送`);
-			},
-
-		}
-	}
-</script>
-
-<style lang='scss'>
-	page{
-		background: $page-color-base;
-	}
-	.list-cell{
-		display:flex;
-		align-items:baseline;
-		padding: 20rpx $page-row-spacing;
-		line-height:60rpx;
-		position:relative;
-		background: #fff;
-		justify-content: center;
-		&.log-out-btn{
-			margin-top: 40rpx;
-			.cell-tit{
-				color: $uni-color-primary;
-				text-align: center;
-				margin-right: 0;
-			}
-		}
-		.cell-tit{
-			flex: 1;
-			font-size: $font-base + 2rpx;
-			color: $font-color-dark;
-			margin-right:10rpx;
-		}
-		.cell-tip{
-			font-size: $font-base;
-			color: $font-color-light;
-		}
-		switch{
-			transform: translateX(16rpx) scale(.84);
-		}
-	}
-</style>

+ 0 - 93
pages/set/userinfo.vue

@@ -1,93 +0,0 @@
-<template>
-	<view class="content">
-		<view class="row b-b">
-			<text class="tit">昵称</text>
-			<input class="input" type="text" v-model="name" placeholder="修改昵称" placeholder-class="placeholder" />
-		</view>
-		<button class="add-btn" @click="confirm">提交</button>
-	</view>
-</template>
-
-<script>
-import { mapState } from 'vuex';
-import { userEdit } from '@/api/set.js';
-export default {
-	data() {
-		return {
-			name: ''
-		};
-	},
-
-	computed: {
-		...mapState('user', ['userInfo'])
-	},
-	onShow(option) {
-		this.name = this.userInfo.nickname + '';
-	},
-	methods: {
-		switchChange(e) {
-			this.addressData.default = e.value;
-		},
-		confirm() {
-			userEdit({ nickname: this.name, avatar: this.userInfo.avatar })
-				.then(e => {
-					this.$api.msg('修改成功');
-					setTimeout(()=> {
-						uni.switchTab({
-							url:'/pages/user/user'
-						});
-					}, 1000);
-					console.log(e);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: $page-color-base;
-	padding-top: 16upx;
-}
-
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30upx;
-	height: 110upx;
-	background: #fff;
-
-	.tit {
-		flex-shrink: 0;
-		width: 120upx;
-		font-size: 30upx;
-		color: $font-color-dark;
-	}
-	.input {
-		flex: 1;
-		font-size: 30upx;
-		color: $font-color-dark;
-	}
-	.iconlocation {
-		font-size: 36upx;
-		color: $font-color-light;
-	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690upx;
-	height: 80upx;
-	margin: 60upx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10upx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-</style>

+ 0 - 305
pages/user/award.vue

@@ -1,305 +0,0 @@
-<template>
-	<view class="content">
-		<view class="content-money">
-			<view class="money-box">
-				<view class="text">可提现佣金(元)</view>
-				<view class="money">{{ money | getMoneyStyle }}</view>		
-			</view>
-			<view class="moneyTx" @click="navto('./withdrawal')">提现</view>
-			<view class="flex buttom-box">
-				<view class="buttom" @click="navto('/pages/money/recharge')">
-					<view class="icon"><image src="/static/icon/i6.png" mode="aspectFill" class="icon-img"></image></view>
-					<text>统计</text>
-				</view>
-				<view class="interval"></view>
-				<view class="buttom" @click="navto('./withdrawal')">
-					<view class="icon"><image src="/static/icon/i7.png" mode="aspectFill" class="icon-img"></image></view>
-					<text>提现</text>
-				</view>
-			</view>
-		</view>
-		<view class="navbar">
-			<view v-for="(item,index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index}" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-		<swiper :current="tabCurrentIndex" :style="{'height':maxheight+'px'}" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<scroll-view scroll-y="true" class="list-scroll-content" @scrolltolower="loadData">
-					<!-- 空白页 -->
-					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-					
-					<!-- 订单列表 -->
-					<view class="order-item flex" v-for="(item, index) in tabItem.orderList" :key="index">
-						<view class="title-box">
-							<view class="title">
-								<text>{{ item.title }}</text>
-							</view>
-							<view class="time">
-								<text>{{ item.add_time }}</text>
-							</view>
-						</view>
-						<view class="money">
-							<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
-						</view>
-					</view>
-					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import { spreadCommission, userBalance } from '@/api/wallet.js';
-import { mapState, mapMutations } from 'vuex';
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	components: {
-		empty,
-		uniLoadMore
-	},
-	onReady() {
-		//初始化获取页面宽度
-		uni.createSelectorQuery().select('.content')
-			.fields(
-			{
-				size:true
-			},
-			data => {
-				console.log(data);
-				console.log(Math.floor((data.width /750) * 300));
-				//保存头部高度
-				this.maxheight =data.height - Math.floor((data.width / 750) * 570);
-				console.log(this.maxheight);
-				}
-			)
-			.exec();
-	},
-	data() {
-		return {
-			// 头部图高度
-			maxheight:'',
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '收入',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页面
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '支出',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页面
-					limit: 10 //每次信息条数
-				},
-			],
-			money: ''
-		};
-	},
-	onLoad(options) {},
-	onShow() {
-		this.loadData();
-		//获取用户余额
-		userBalance({}).then(({ data }) => {
-			this.money = data.commissionCount;
-		});
-	},
-	methods: {
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		async loadData(source) {
-			//这里时将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state+3;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			//修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-			
-			spreadCommission(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				state
-			)
-				.then(({ data }) => {
-					if(data.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data[0].list);
-						console.log(navItem.orderList);
-						navItem.page++;
-					}
-					//判断是否还有数据, 有改为more, 没有改为noMore
-					if (navItem.limit == data.length) {
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-}
-</script>
-
-<style lang="scss">
-page {
-	background: #ffffff;
-	height: 100%;
-}
-.content-money {
-	padding-bottom: 30rpx;
-	background: $page-color-base;
-	.moneyTx{
-		position: absolute;
-		top: 150rpx;
-		right: 0rpx;
-		width: 150rpx;
-		padding: 10rpx 30rpx;
-		border: 2px solid #FFFFFF;
-		border-top-left-radius: 99rpx;
-		border-bottom-left-radius: 99rpx;
-		color: #FFFFFF;
-		line-height: 1;
-		font-size: $font-base;
-	}
-	.buttom-box {
-		background-color: #ffffff;
-		text-align: center;
-		margin: 0 30rpx;
-		padding: 20rpx 0;
-		border-radius: $border-radius-sm;
-		margin-top: -60rpx;
-		.buttom {
-			font-size: $font-lg;
-			flex-grow: 1;
-		}
-		.interval {
-			width: 2px;
-			height: 60rpx;
-			background-color: #eeeeee;
-		}
-		.icon {
-			height: 50rpx;
-			width: 48rpx;
-			margin: 0 auto;
-			.icon-img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-	}
-}
-.money-box {
-	background-color: $base-color;
-	padding-top: var(--status-bar-height);
-	height: 368rpx;
-	color: #ffffff;
-	text-align: center;
-	.text {
-		padding-top: 147rpx;
-		font-size: $font-sm;
-	}
-	.money {
-		font-size: 56rpx;
-	}
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
-			}
-		}
-	}
-}
-//列表
-
-.swiper-box {
-	padding-top: 10rpx;
-	.order-item {
-		padding: 20rpx 30rpx;
-		line-height: 1.5;
-		.title-box {
-			.title {
-				font-size: $font-lg;
-				color: $font-color-base;
-			}
-			.time {
-				font-size: $font-base;
-				color: $font-color-light;
-			}
-		}
-		.money {
-			color: #fd5b23;
-			font-size: $font-lg;
-		}
-	}
-}
-.list-scroll-content {
-	height: 100%;
-}
-.content {
-	height: 100%;
-	.empty-content {
-		background-color: #ffffff;
-	}
-}
-</style>

+ 0 - 310
pages/user/coupon.vue

@@ -1,310 +0,0 @@
-<template>
-	<view class="content">
-		<view class="navbar">
-			<view v-for="(item,index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view>
-		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
-			<swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex">
-				<!-- 空白页 -->
-				<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
-				<view v-for="(item, index) in tabItem.orderList" :key="index" class="row flex">
-					<view class="list-money flex">
-						<image :src="item._type == 2 ? '/static/img/img03.png' : '/static/img/img02.png'" mode="scaleToFill"></image>
-						<view class="list-money-text">
-							<view class="tit" :class="{ action: item._type} == 2">
-								<text>{{ item.coupon_price }}</text>
-							</view>
-							<view class="price">
-								<text>满{{ item.use_min_price }}元</text>
-							</view>
-						</view>
-					</view>
-					<view class="list-interval position-relative">
-						<view class="bottom"></view>
-						<view class="top"></view>
-					</view>
-					<view class="row_list_right">
-						<view class="right_top">
-							<text class="right_title" :class="{ action: item._type == 2}">{{ item.coupon_title }}</text>
-						</view>
-						<view class="right_time">
-							<text>{{ item._add_time }}-{{ item.end_time }}</text>
-						</view>
-						<view class="right_use action" v-if="item._type == 2">
-							<text>{{ item._msg }}</text>
-						</view>
-						<view class="right_use noAction" v-if="item._type == 0">
-							<text>{{ item._msg }}</text>
-						</view>
-					</view>
-				</view>
-				<uni-load-more :status="tabItem.loadingType"></uni-load-more>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-import { getCouponsList } from '@/api/order.js';
-export default{
-	components: {
-		uniLoadMore,
-		empty
-	},
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList:[
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					orderList: [],
-					page: 1,//当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '未使用',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '已使用',
-					loadingType: 'more',
-					orderList: [],
-					page: 1,//当前页数
-					limit: 10 //每次信息条数
-				}
-			]
-		};
-	},
-	onLoad(options) {
-		this.loadData();
-	},
-	methods: {
-		//返回首页
-		navTo(){
-			uni.switchTab({
-				url: '/pages/index/index'
-			});
-		},
-		//获取订单列表
-		loadData(source) {
-			//将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading'){
-				//防止重复加载
-				return;
-			}
-			//修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-			getCouponsList(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				index
-			)
-				.then(({ data }) => {
-					let da = data.map(e => {
-						e.coupon_price = +e.coupon_price.replace(',', '');
-						e.use_min_price = +e.use_min_price.replace(',', '');
-						return e
-					});
-					navItem.orderList = navItem.orderList.concat(da);
-					console.log(navItem.orderList);
-					navItem.page++;
-					if (navItem.limit == data.length) {
-						// 判断是否还有数据,有改为more,没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					}else {
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				})
-		},
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-// 卡卷可用时颜色
-$card-color-action: #fc4141;
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: #bc253a;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid #bc253a;
-			}
-		}
-	}
-}
-
-.swiper-box {
-	height: calc(100% - 40px);
-	.tab-content {
-		padding: 25rpx 0px;
-		font-size: 28rpx;
-		color: #1b1b1b;
-	}
-}
-
-.row {
-	border-radius: 15rpx;
-	margin: 0 25rpx;
-	margin-bottom: 25rpx;
-	height: 200rpx;
-	overflow: hidden;
-	background-color: #ffffff;
-	.list-interval {
-		border: 1px dashed $border-color-light;
-		height: 100%;
-		.top,
-		.bottom {
-			border-radius: 100rpx;
-			width: 30rpx;
-			height: 30rpx;
-			position: absolute;
-			background-color: $page-color-base;
-			right: -15rpx;
-		}
-		.top {
-			top: -18rpx;
-		}
-		.bottom {
-			bottom: -18rpx;
-		}
-	}
-	.list-money {
-		height: 100%;
-		image {
-			height: 100%;
-			width: 20rpx;
-		}
-		.list-money-text {
-			width: 220rpx;
-			padding: 0 25rpx;
-			text-align: center;
-			color: $font-color-light;
-			.tit {
-				padding: 15rpx 0rpx;
-				font-size: 55rpx;
-				font-weight: bold;
-				&.action {
-					color: $card-color-action;
-				}
-			}
-			.price {
-				padding-bottom: 25rpx;
-			}
-		}
-	}
-	.row_list_right {
-		flex-grow: 1;
-		padding-left: 25rpx;
-		line-height: 1;
-		.right_time {
-			color: $font-color-light;
-			font-size: $font-sm;
-		}
-		.right_use {
-			margin: 15rpx 0;
-			padding: 10rpx;
-			width: 140rpx;
-			text_align: center;
-			border-radius: 50rpx;
-			color: #fff;
-			font-size: $font-sm - 4rpx;
-			&.action {
-				background-color: $card-color-action;
-			}
-			&.noAction {
-				background-color: $color-gray;
-			}
-		}
-		.right_top {
-			margin: 15rpx 0;
-			font-size: $font-lg;
-			height: 50rpx;
-			color: $font-color-light;
-			.right_name {
-				font-weight: bold;
-			}
-			.right_title {
-				font-weight: bold;
-				&.action {
-					color: $font-color-base;
-				}
-			}
-		}
-	}
-	
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
-	}
-}
-// uni-load-more
-.uni-load-more {
-	display: flex;
-	flex-direction: row;
-	height: 80rpx;
-	align-items: center;
-	justify-content: center;
-}
-</style>

+ 0 - 156
pages/user/favorites.vue

@@ -1,156 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 空白页 -->
-		<empty v-if="favoriteList.length < 1"></empty>
-		<view class="favorites flex" v-for="ls in favoriteList" @click="toproduct(ls.pid)">
-			<view class="favorites_img"><image :src="ls.image"></image></view>
-			<view class="favorites_list">
-				<view class="favorites_name">{{ ls.store_name }}</view>
-				<view class="favorites_peice flex">
-					<view>
-						<text>¥{{ ls.price }}</text>
-					</view>
-					<view class="icon_del" @click.prevent.stop="del(ls.pid)" v-show="delshow">
-						<text class="iconfont icondelete"></text>
-						<text>取消</text>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { getcollectList, delcollect } from '@/api/user.js';
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-export default {
-	components: {
-		uniLoadMore,
-		empty
-	},
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			favoriteList: '',
-			delshow: true
-		};
-	},
-	onLoad() {
-		this.loadData();
-	},
-	methods: {
-		//获取收藏夹列表
-		loadData() {
-			let obj = this;
-			getcollectList({
-				page: '1',
-				limit: '10'
-			})
-				.then(function(e) {
-					obj.favoriteList = e.data;
-					console.log(obj.favoriteList);
-				})
-				.catch(function(e) {
-					console.log(e);
-				});
-		},
-		//跳转商品详情页
-		toproduct(item) {
-			let id = item;
-			uni.navigateTo({
-				url: `/pages/product/product?id=${id}`
-			})
-		},
-		//删除收藏夹商品
-		del(item) {
-			let obj = this;
-			uni.showModal({
-				title: '提示',
-				content: '是否取消收藏该商品',
-				success: e => {
-					if (e.confirm) {
-						delcollect({
-							id: item,
-							category: 'product'
-						})
-							.then(function(e) {
-								uni.showToast({
-									title: '已取消收藏',
-									duration: 1500,
-								});
-								obj.loadData();
-							})
-							.catch(function(e) {
-								console.log(e);
-							});
-					}
-				}
-			});
-		},
-	}
-}
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-%flex-center {
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	align-items: center;
-}
-%section {
-	display: flex;
-	justify-content: space-around;
-	align-content: center;
-	background: #fff;
-	border-radius: 10rpx;
-}
-.container {
-	height: 100%;
-	background-color: $page-color-base;
-	padding: 15rpx 0rpx;
-	font-size: 28rpx;
-}
-.favorites {
-	width: 90%;
-	background-color: #ffffff;
-	border-radius: 15rpx;
-	margin: 15rpx auto;
-	padding: 25rpx 25rpx;
-	margin-bottom: 25rpx;
-}
-.favorites_img {
-	width: 80px !important;
-	height: 80px;
-}
-.favorites_img image {
-	width: 100%;
-	height: 100%;
-}
-.favorites_list {
-	width: 70%;
-	padding-left: 20rpx;
-}
-.icon_del {
-	color: $font-color-base;
-	z-index: 9999;
-	font-weight: bold;
-}
-.favorites_name {
-	height: 80rpx;
-	overflow: hidden;
-	text-overflow: ellipsis;
-	display: -webkit-box;
-	-webkit-box-orient: vertial;
-	-webkit-line-clamp: 2;
-}
-.favorites_peice {
-	margin-top: 25rpx;
-	color: #db1935;
-	font-weight: bold;
-}
-</style>

+ 0 - 153
pages/user/notice.vue

@@ -1,153 +0,0 @@
-<template>
-	<view>
-		<view class="notice-item">
-			<text class="time">11:30</text>
-			<view class="content">
-				<text class="title">新品上市,全场满199减50</text>
-				<view class="img-wrapper">
-					<image class="pic" src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556465765776&di=57bb5ff70dc4f67dcdb856e5d123c9e7&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01fd015aa4d95fa801206d96069229.jpg%401280w_1l_2o_100sh.jpg"></image>
-				</view>
-				<text class="introduce">
-					虽然做了一件好事,但很有可能因此招来他人的无端猜测,例如被质疑是否藏有其他利己动机等,乃至谴责。即便如此,还是要做好事。
-				</text>
-				<view class="bot b-t">
-					<text>查看详情</text>
-					<text class="more-icon iconfont iconenter"></text>
-				</view>
-			</view>
-		</view>
-		<view class="notice-item">
-			<text class="time">昨天 12:30</text>
-			<view class="content">
-				<text class="title">新品上市,全场满199减50</text>
-				<view class="img-wrapper">
-					<image class="pic" src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3761064275,227090144&fm=26&gp=0.jpg"></image>
-					<view class="cover">
-						活动结束
-					</view>
-				</view>
-				<view class="bot b-t">
-					<text>查看详情</text>
-					<text class="more-icon iconfont iconenter"></text>
-				</view>
-			</view>
-		</view>
-		<view class="notice-item">
-			<text class="time">2019-07-26 12:30</text>
-			<view class="content">
-				<text class="title">新品上市,全场满199减50</text>
-				<view class="img-wrapper">
-					<image class="pic" src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556465765776&di=57bb5ff70dc4f67dcdb856e5d123c9e7&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01fd015aa4d95fa801206d96069229.jpg%401280w_1l_2o_100sh.jpg"></image>
-					<view class="cover">
-						活动结束
-					</view>
-				</view>
-				<text class="introduce">新品上市全场2折起,新品上市全场2折起,新品上市全场2折起,新品上市全场2折起,新品上市全场2折起</text>
-				<view class="bot b-t">
-					<text>查看详情</text>
-					<text class="more-icon iconfont iconenter"></text>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-
-			}
-		},
-		methods: {
-
-		}
-	}
-</script>
-
-<style lang='scss'>
-	page {
-		background-color: #f7f7f7;
-		padding-bottom: 30upx;
-	}
-
-	.notice-item {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-	}
-
-	.time {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		height: 80upx;
-		padding-top: 10upx;
-		font-size: 26upx;
-		color: #7d7d7d;
-	}
-
-	.content {
-		width: 710upx;
-		padding: 0 24upx;
-		background-color: #fff;
-		border-radius: 4upx;
-	}
-
-	.title {
-		display: flex;
-		align-items: center;
-		height: 90upx;
-		font-size: 32upx;
-		color: #303133;
-	}
-
-	.img-wrapper {
-		width: 100%;
-		height: 260upx;
-		position: relative;
-	}
-
-	.pic {
-		display: block;
-		width: 100%;
-		height: 100%;
-		border-radius: 6upx;
-	}
-
-	.cover {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		position: absolute;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		background-color: rgba(0, 0, 0, .5);
-		font-size: 36upx;
-		color: #fff;
-	}
-
-	.introduce {
-		display: inline-block;
-		padding: 16upx 0;
-		font-size: 28upx;
-		color: #606266;
-		line-height: 38upx;
-	}
-
-	.bot {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		height: 80upx;
-		font-size: 24upx;
-		color: #707070;
-		position: relative;
-	}
-
-	.more-icon {
-		font-size: 32upx;
-	}
-</style>

+ 0 - 200
pages/user/scoreAccumulate.vue

@@ -1,200 +0,0 @@
-<template>
-	<view class="content">
-		<!-- <view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
-		</view> -->
-		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
-			<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>
-
-					<!-- 订单列表 -->
-					<view v-for="(item, index) in tabItem.orderList" :key="index" class="order-item flex">
-						<view class="title-box">
-							<view class="title">
-								<text>{{ item.mark }}</text>
-							</view>
-							<view class="time">
-								<text>{{ item.add_time }}</text>
-							</view>
-						</view>
-						<view class="money">
-							<text>{{ (item.pm == 0 ? '-' : '+') + item.number }}</text>
-						</view>
-					</view>
-					<uni-load-more :status="tabItem.loadingType"></uni-load-more>
-				</scroll-view>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-	
-import { integrallist } from '@/api/functionalUnit.js';
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-export default {
-	components: {
-		empty,
-		uniLoadMore
-	},
-	onReady() {
-		
-	},
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '全部',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-			],
-		};
-	},
-	onShow() {
-		// 载入积分数据
-		this.loadData();
-	},
-	methods: {
-		// 页面跳转
-		navto(e) {
-			uni.navigateTo({
-				url: e
-			});
-		},
-		//获取收入支出信息
-		async loadData(source) {
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-
-			integrallist(
-				{
-					page: navItem.page,
-					limit: navItem.limit
-				},
-				state
-			)
-				.then(({ data }) => {
-					if (data.length > 0) {
-						navItem.orderList = navItem.orderList.concat(data);
-						navItem.page++;
-					}
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background: #ffffff;
-	height: 100%;
-}
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
-			}
-		}
-	}
-}
-// 列表
-
-.swiper-box {
-	height: calc(100% - 44px);
-	padding-top: 10rpx;
-	.order-item {
-		padding: 20rpx 30rpx;
-		line-height: 1.5;
-		.title-box {
-			.title {
-				font-size: $font-lg;
-				color: $font-color-base;
-			}
-			.time {
-				font-size: $font-base;
-				color: $font-color-light;
-			}
-		}
-		.money {
-			color: #fd5b23;
-			font-size: $font-lg;
-		}
-	}
-}
-.list-scroll-content {
-	height: 100%;
-}
-.content {
-	height: 100%;
-	.empty-content {
-		background-color: #ffffff;
-	}
-}
-</style>

+ 0 - 283
pages/user/shareQrCode.vue

@@ -1,283 +0,0 @@
-<template>
-	<view class="content">
-		<!-- <view class="qrimg">
-			<tki-qrcode
-				:cid="cid"
-				ref="qrcode"
-				:val="val"
-				:size="size"
-				:unit="unit"
-				:background="background"
-				:foreground="foreground"
-				:pdground="pdground"
-				:icon="icon"
-				:iconSize="iconSize"
-				:lv="lv"
-				:onval="onval"
-				:loadMake="loadMake"
-				:usingComponents="usingComponents"
-				@result="qrR"
-			/>
-		</view> -->
-		<!-- #ifndef MP-ALIPAY -->
-		<canvas :class="{ qrimg: !loading }" @longtap="alertCanv" id="qrShareBox" canvas-id="qrShareBox" class="tki-qrcode-canvas" />
-		<!-- #endif -->
-		<!-- #ifdef MP-ALIPAY -->
-		<canvas :class="{ qrimg: !loading }" @longtap="alertCanv" id="qrShareBox" class="tki-qrcode-canvas" />
-		<!-- #endif -->
-		<view :style="{ display: loading ? 'none' : 'block' }" class="tki-qrcode-canvas"><image :src="ctxSrc" mode="scaleToFill" class="tki-qrcode-canvas"></image></view>
-		<view class="share-bottom flex" :class="{ 'action-share-bottom': !loading }" @click="loading ? showImg() : ''">
-			<text>{{ loading ? '点击生成图片' : '长按二维码下载' }}</text>
-		</view>
-	</view>
-</template>
-
-<script>
-// import tkiQrcode from '@/components/tki-qrcode/tki-qrcode.vue';
-import { spreadBanner } from '@/api/user.js';
-export default {
-	// components: { tkiQrcode },
-	data() {
-		return {
-			cid: 'tki-qrcode-canvas', //canvasId,页面存在多个二维码组件时需设置不同的ID
-			size: 180, //生成的二维码大小
-			unit: 'upx', //大小单位尺寸
-			// show: true,//默认使用组件中的image标签显示二维码
-			val: '', //要生成的内容
-			background: '#ffffff', //二维码背景色
-			foreground: '#333333', //二维码前景色
-			pdground: '#333333', //二维码角标色
-			icon: '', //二维码图标URL(必须是本地图片,网络图需要先下载至本地)
-			iconSize: 40, //二维码图标大小
-			lv: 3, //容错级别
-			onval: false, //监听val值变化自动重新生成二维码
-			loadMake: false, //组件初始化完成后自动生成二维码,val需要有值
-			usingComponents: false, //是否使用了自定义组件模式(主要是为了修复非自定义组件模式时 v-if 无法生成二维码的问题)
-			showLoading: false, //是否显示loading
-			loadingText: '二维码生成中', //loading文字
-			src: '', // 二维码生成后的图片地址或base64
-			ratio: 1, //页面比例用于计算
-			ctxSrc: '', //要显示的图片
-			loading: true,//是否载入图片中
-			canHeight: '',//画布高度
-			canWeidth: ''//画布宽度
-		};
-	},
-	onLoad() {
-		this.loadCodeList()
-	},
-	onReady() {
-		let obj = this;
-		let query = uni.createSelectorQuery();
-		// 获取页面比例
-		query
-			.select('.content')
-			.fields(
-				{
-					size: true
-				},
-				e => {
-					// 保存比例
-					this.ratio = e.width / 750;
-				}
-			)
-			.exec();
-		// 获取画布宽高信息
-		query
-			.select('#qrShareBox')
-			.fields(
-				{
-					size: true
-				},
-				e => {
-					// 保存画布宽高信息
-					obj.canHeight = e.height;
-					obj.canWeidth = e.width;
-				}
-			)
-			.exec();
-	},
-	methods: {
-		loadCodeList() {
-			// 加载二维码信息
-			spreadBanner({
-				// #ifdef H5
-				type: 2,
-				// #endif
-				// #ifdef MP
-				type: 1
-				// #endif
-			}).then(e => {
-				console.log(e);
-				// #ifdef MP
-				// 保存二维码图片
-				uni.downloadFile({
-					url: e.data[0].wap_posterQr,
-					success(res) {
-						if (res.errMsg == 'downloadFile:ok') {
-							obj.src = res.tempFilePath;
-							// 生成画布
-							obj.loadImg(obj.src);
-							uni.hideLoading();
-						}
-						console.log(res);
-					},
-					fail(e) {
-						console.log(e);
-					}
-				})
-				// #endif
-				// #ifdef H5
-					// 保存二维码图片
-					this.src =  e.data[0].wap_posterQr;
-					// 生成画布
-					this.loadImg(e.data[0].wap_posterQr);
-				// #endif
-				
-			}).catch((e) => {
-					uni.showModal({
-						title: '生成失败请刷新页面',
-						showCancel: false
-					});
-					uni.hideLoading();
-				});;
-		},
-		// 长按画布事件
-		alertCanv() {
-			uni.showModal({
-				title: '请先点击生成图片再下载',
-				showCancel: false
-			});
-		},
-		// 生成图片
-		showImg() {
-			uni.showLoading({
-				title: '图片生成中',
-				mask: true
-			});
-			let obj = this;
-			//因为和uni.showLoading载入效果冲突需要延迟执行生成图片方法
-			setTimeout(function() {
-				uni.canvasToTempFilePath({
-					x: 0,
-					y: 0,
-					width: obj.canWeidth,
-					height: obj.canHeight,
-					destWidth: obj.canWeidth,
-					destHeight: obj.canHeight,
-					fileType: 'jpg',
-					quality: 1,
-					canvasId: 'qrShareBox',
-					success: res => {
-						uni.hideLoading();
-						uni.showModal({
-							title: '创建成功,长按二维码下载图片',
-							showCancel: false
-						});
-						// 显示生成的图片
-						obj.loading = false;
-						// 保存图片base64
-						obj.ctxSrc = res.tempFilePath;
-					},
-					fail(e) {
-						console.log(e);
-					}
-				});
-			}, 50);
-		},
-		// 开始渲染画布
-		loadImg(src) {
-			const obj = this;
-			const cavWidth=523;//画布宽度
-			const cavHeight=700;//画布高度
-			const ratio = obj.ratio;//获取页面比例
-			const ctxBg = '/static/img/img14.jpg'; //画布背景
-			let context = uni.createCanvasContext('qrShareBox');
-			const codeSize = obj.size * ratio; //计算二维码大小
-			const codeX = ((cavWidth - obj.size) * ratio) / 2; //二维码所在x轴位置
-			const codeY = cavHeight * ratio; //二维码所在y轴位置
-			const codeBoxColor = '#FFFFFF'; //包裹框颜色
-			const codeBoxWidht = 0; //包裹边框宽度
-			const codeBoxSize = (codeBoxWidht / 2) * ratio; //计算二维码白色包裹框大小
-			const codeBoxX = codeX - codeBoxSize; //包裹框初始X轴
-			const codeBoxY = codeY - codeBoxSize; //包裹框初始Y轴
-			const codeBoxEnd = codeSize + codeBoxWidht * ratio; //计算包裹框大小
-			const fontTop = codeY + codeBoxEnd + (codeBoxWidht + 20) * this.ratio; //文字距离上边距高度
-			const fontSize = 24 * ratio; //文字大小
-			const fontText = ''; //文字内容
-			const fontLeft = (codeSize - fontSize * fontText.length) / 2 + codeX; //文字左侧距离
-			// 插入背景图片
-			context.drawImage(ctxBg, 0, 0, obj.canWeidth, obj.canHeight);
-			// // 插入文字
-			context.setFontSize(fontSize);
-			context.fillText(fontText, fontLeft, fontTop);
-			// 插入边框
-			context.beginPath();//开始画线
-			context.setLineJoin('round'); //边框类型
-			context.setLineWidth(codeBoxWidht * ratio);
-			context.setStrokeStyle(codeBoxColor); //设置包裹框颜色
-			context.strokeRect(codeBoxX, codeBoxY, codeBoxEnd, codeBoxEnd);
-			context.stroke();//渲染线条
-			// 插入二维码
-			context.drawImage(src, codeX, codeY, codeSize, codeSize);
-			// 开始渲染
-			context.draw();
-		},
-		// 創建二维码
-		creatQrcode() {
-			this.$refs.qrcode._makeCode();
-		},
-		// 保存二维码到图库
-		saveQrcode() {
-			this.$refs.qrcode._saveCode();
-		},
-		// 生成二维码后返回base64
-		qrR(res) {
-			this.src = res;
-		},
-		//清空二维码(清空二维码会触发result回调 返回值为空)
-		clearQrcode(e) {
-			this.$refs.qrcode._clearCode();
-			this.val = '';
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-.content {
-	padding-top: 30rpx;
-}
-// #qrShareBox {
-// 	position: absolute;
-// 	left: -9999rpx;
-// 	top: -9999rpx;
-// }
-
-.qrimg {
-	position: absolute;
-	left: -9999rpx;
-	top: -9999rpx;
-}
-.tki-qrcode-canvas {
-	// width: 700rpx;
-	// height: 1245rpx;
-	width: 532rpx;
-	height: 945rpx;
-	margin: 0 auto;
-}
-.share-bottom {
-	width: 560rpx;
-	height: 80rpx;
-	color: #ffffff;
-	background-color: $base-color;
-	margin: 0 auto;
-	font-size: $font-lg - 2rpx;
-	margin-top: 30rpx;
-	border-radius: 99rpx;
-	justify-content: center;
-	&.action-share-bottom {
-		background-color: $color-gray;
-	}
-}
-</style>

+ 0 - 556
pages/user/user.vue

@@ -1,556 +0,0 @@
-<template>
-	<view class="container">
-		<view class="vheigh"></view>
-		<scroll-view class="content-box" scroll-y="true">
-			<view class="user-section">
-				<view class="bg"></view>
-				<view class="user-info-box ">
-					<view class="detail flex" @click="navTo('/pages/set/userinfo')">
-						<view class="portrait-box"><image class="portrait" :src="userInfo.avatar || '/static/error/missing-face.png'"></image></view>
-						<view class="info-box">
-							<view class="username">{{ userInfo.nickname || '游客' }}</view>
-							<view class="font-size-sm" v-if="userInfo.spread_uid">邀请码:{{ userInfo.spread_uid }}</view>
-						</view>
-					</view>
-					<view class="config iconfont">
-						<text class="setting iconsetting" @click="navTo('/pages/set/set')"></text>
-						<text class="message iconmessage" @click="navTo('/pages/user/notice')"></text>
-					</view>
-				</view>
-				<!-- 会员卡功能 -->
-				<view class="vip-card-box">
-					<image class="card-bg" src="/static/img/vip-card-bg.png" mode=""></image>
-					<view class="b-btn">我要升级</view>
-					<view class="tit">
-						<text class="iconfont icon-iLinkapp-"></text>
-						升级专享优惠权益
-					</view>
-					<text class="e-m">DCloud Union</text>
-					<text class="e-b">开通会员开发无bug 一测就上线</text>
-				</view>
-			</view>
-
-			<view
-				class="cover-container"
-				:style="[
-					{
-						transform: coverTransform,
-						transition: coverTransition
-					}
-				]"
-				@touchstart="coverTouchstart"
-				@touchmove="coverTouchmove"
-				@touchend="coverTouchend"
-			>
-				<image class="arc" src="/static/img/arc.png"></image>
-
-				<view class="tj-sction">
-					<view class="tj-item" @click="navTo('/pages/money/wallet')">
-						<text class="num">{{ userInfo.now_money || '0.00' }}</text>
-						<text>余额</text>
-					</view>
-					<view class="tj-item" @click="navTo('/pages/user/award')">
-						<text class="num">{{ userInfo.brokerage_price || '0.00' }}</text>
-						<text>佣金</text>
-					</view>
-					<view class="tj-item" @click="navTo('/pages/user/scoreAccumulate')">
-						<text class="num">{{ userInfo.integral || '0.00' }}</text>
-						<text>积分</text>
-					</view>
-				</view>
-				<!-- 订单 -->
-
-				<view class="item-box">
-					<!-- <view class="box-title flex borde-b">
-						<view class="title"><text>我的订单</text></view>
-						<view class="link" @click="navTo('/pages/order/order?state=0')" hover-class="common-hover">
-							<text>全部订单</text>
-							<text class="iconfont iconenter"></text>
-						</view>
-					</view> -->
-					<view class="order-section">
-						<view class="order-item" @click="navTo('/pages/order/order?state=0')" hover-class="common-hover" :hover-stay-time="50">
-							<view class=" icon position-relative">
-								<image class="icon-img" src="/static/icon/i1.png" mode="aspectFit"></image>
-								<view class="corner" v-if="orderInfo.unpaid_count > 0">
-									<text>{{ orderInfo.unpaid_count }}</text>
-								</view>
-							</view>
-							<text>待付款</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=1')" hover-class="common-hover" :hover-stay-time="50">
-							<view class=" icon position-relative">
-								<image class="icon-img" src="/static/icon/i2.png" mode="aspectFit"></image>
-								<view class="corner" v-if="orderInfo.unshipped_count > 0">
-									<text>{{ orderInfo.unshipped_count }}</text>
-								</view>
-							</view>
-							<text>待发货</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=2')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon position-relative">
-								<image class="icon-img" src="/static/icon/i3.png" mode="aspectFit"></image>
-								<view class="corner" v-if="orderInfo.received_count > 0">
-									<text>{{ orderInfo.received_count }}</text>
-								</view>
-							</view>
-							<text>待收货</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=3')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon position-relative">
-								<image class="icon-img" src="/static/icon/i4.png" mode="aspectFit"></image>
-								<!-- <view class="corner" v-if="orderInfo.complete_count > 0">
-									<text>{{ orderInfo.complete_count }}</text>
-								</view> -->
-							</view>
-							<text>已完成</text>
-						</view>
-					</view>
-				</view>
-				<view class="item-box">
-					<!-- <view class="box-title flex borde-b">
-						<view class="title"><text>我的资产</text></view>
-					</view> -->
-					<view class="order-section">
-						<view class="order-item" @click="navTo('/pages/money/wallet')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon"><image class="icon-img" src="/static/icon/u1.png" mode="aspectFit"></image></view>
-							<text>我的钱包</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/user/award')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon"><image class="icon-img" src="/static/icon/u2.png" mode="aspectFit"></image></view>
-							<text>奖励明细</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/user/award')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon"><image class="icon-img" src="/static/icon/u3.png" mode="aspectFit"></image></view>
-							<text>积分明细</text>
-						</view>
-						<view class="order-item" @click="navTo('/pages/order/order?state=4')" hover-class="common-hover" :hover-stay-time="50">
-							<view class="icon"><image class="icon-img" src="/static/icon/u4.png" mode="aspectFit"></image></view>
-							<text>通用币</text>
-						</view>
-					</view>
-				</view>
-
-				<!-- 浏览历史 -->
-				<view class="history-section icon">
-					<view class="sec-header">
-						<text class="iconfont iconfavor"></text>
-						<text>浏览历史</text>
-					</view>
-					<scroll-view scroll-x class="h-list">
-						<image
-							class="h-list-image"
-							@click="navTo('/pages/product/product')"
-							src="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1553105186633&di=c121a29beece4e14269948d990f9e720&imgtype=0&src=http%3A%2F%2Fimg004.hc360.cn%2Fm8%2FM04%2FDE%2FDE%2FwKhQplZ-QteEBvsbAAAAADUkobU751.jpg"
-							mode="aspectFill"
-						></image>
-					</scroll-view>
-					<uni-list>
-						<uni-list-item title="我的钱包" @click="navTo('/pages/money/wallet')" thumb="/static/icon/img11.png"></uni-list-item>
-						<uni-list-item title="我的卡卷" @click="navTo('/pages/user/coupon')" thumb="/static/icon/img12.png"></uni-list-item>
-						<uni-list-item title="我的收藏" @click="navTo('/pages/user/favorites')" thumb="/static/icon/img02.png"></uni-list-item>
-						<uni-list-item title="商户入驻" @click="navTo('/pages/set/address')" thumb="/static/icon/img05.png"></uni-list-item>
-						<uni-list-item title="邀请好友" @click="navTo('/pages/user/shareQrCode')" thumb="/static/icon/img10.png"></uni-list-item>
-						<uni-list-item title="关于我们" @click="navTo('/pages/shareQrCode/index')" thumb="/static/icon/img09.png"></uni-list-item>
-					</uni-list>
-				</view>
-			</view>
-		</scroll-view>
-	</view>
-</template>
-<script>
-import { mapState, mapMutations } from 'vuex';
-import uniList from '@/components/uni-list/uni-list.vue';
-import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
-import { orderData, getUserInfo } from '@/api/user.js';
-import { saveUrl, interceptor } from '@/utils/loginUtils.js';
-let startY = 0,
-	moveY = 0,
-	pageAtTop = true;
-export default {
-	components: {
-		uniList,
-		uniListItem
-	},
-	data() {
-		return {
-			coverTransform: 'translateY(0px)',
-			coverTransition: '0s',
-			moving: false,
-			userDowm: 0, //卡片升级专属高度
-			userMaxDowm: 0 //卡片最高高度
-		};
-	},
-	onShow() {
-		// 判断是否已经登录
-		if (this.hasLogin) {
-			this.loadBaseData();
-		}
-	},
-	onReady() {
-		// 初始化获取页面宽度
-		uni.createSelectorQuery()
-			.select('.container')
-			.fields(
-				{
-					size: true
-				},
-				data => {
-					// 计算最多下拉的高度
-					this.userDowm = Math.floor((data.width / 750) * 185);
-					// 计算最大触发修改高度事件
-					this.userMaxDowm = Math.floor((data.width / 750) * 250);
-				}
-			)
-			.exec();
-	},
-	// #ifndef MP
-	// onNavigationBarButtonTap(e) {
-	// 	const index = e.index;
-	// 	if (index === 0) {
-	// 		this.navTo('/pages/set/set');
-	// 	} else if (index === 1) {
-	// 		// #ifdef APP-PLUS
-	// 		const pages = getCurrentPages();
-	// 		const page = pages[pages.length - 1];
-	// 		const currentWebview = page.$getAppWebview();
-	// 		currentWebview.hideTitleNViewButtonRedDot({
-	// 			index
-	// 		});
-	// 		// #endif
-	// 		uni.navigateTo({
-	// 			url: '/pages/user/notice'
-	// 		});
-	// 	}
-	// },
-	// #endif
-	computed: {
-		...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
-	},
-	methods: {
-		...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
-		// 加载初始数据
-		loadBaseData() {
-			getUserInfo({})
-				.then(({ data }) => {
-					this.setUserInfo(data);
-					// 获取用户数据完毕后在获取订单数据防止多次跳转到登录页
-					orderData({})
-						.then(({ data }) => {
-							this.setOrderInfo(data);
-						})
-						.catch(e => {
-							this.setOrderInfo({
-								complete_count: 0, //完成
-								received_count: 0, //待收货
-								unshipped_count: 0, //待发货
-								order_count: 0, //订单总数
-								unpaid_count: 0 //待付款
-							});
-						});
-				})
-				.catch(e => {
-					console.log(e);
-				});
-		},
-		/**
-		 * 统一跳转接口,拦截未登录路由
-		 * navigator标签现在默认没有转场动画,所以用view
-		 */
-		navTo(url) {
-			if (!this.hasLogin) {
-				// 保存地址
-				saveUrl();
-				// 登录拦截
-				interceptor();
-			} else {
-				uni.navigateTo({
-					url
-				});
-			}
-		},
-
-		/**
-		 *  会员卡下拉和回弹
-		 *  1.关闭bounce避免ios端下拉冲突
-		 *  2.由于touchmove事件的缺陷(以前做小程序就遇到,比如20跳到40,h5反而好很多),下拉的时候会有掉帧的感觉
-		 *    transition设置0.1秒延迟,让css来过渡这段空窗期
-		 *  3.回弹效果可修改曲线值来调整效果,推荐一个好用的bezier生成工具 http://cubic-bezier.com/
-		 */
-		coverTouchstart(e) {
-			// console.log(e);
-			if (pageAtTop === false) {
-				return;
-			}
-
-			this.coverTransition = 'transform .1s linear';
-			startY = e.touches[0].clientY;
-		},
-		coverTouchmove(e) {
-			// console.log(e);
-			moveY = e.touches[0].clientY;
-			let moveDistance = moveY - startY;
-			let maxDowm = this.userMaxDowm;
-			let Dowm = this.userDowm;
-			if (moveDistance < 0) {
-				this.moving = false;
-				return;
-			}
-			this.moving = true;
-			if (moveDistance >= Dowm && moveDistance < maxDowm) {
-				moveDistance = Dowm;
-			}
-
-			if (moveDistance > 0 && moveDistance <= Dowm) {
-				this.coverTransform = `translateY(${moveDistance}px)`;
-			}
-		},
-		coverTouchend() {
-			if (this.moving === false) {
-				return;
-			}
-			this.moving = false;
-			this.coverTransition = 'transform 0.3s cubic-bezier(.21,1.93,.53,.64)';
-			this.coverTransform = 'translateY(0px)';
-		}
-	}
-};
-</script>
-<style lang="scss">
-page {
-	height: 100%;
-}
-%flex-center {
-	display: flex;
-	flex-direction: column;
-	justify-content: center;
-	align-items: center;
-}
-%section {
-	display: flex;
-	justify-content: space-around;
-	align-content: center;
-	background: #fff;
-	border-radius: 10rpx;
-}
-.container {
-	height: 100%;
-	background-color: $page-color-base;
-}
-.content-box {
-	height: 100%;
-}
-.vheigh {
-	height: var(--status-bar-height);
-	background-color: $base-color;
-}
-.user-section {
-	height: 435rpx;
-	padding: 15rpx 30rpx 0;
-	position: relative;
-	.bg {
-		position: absolute;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		background-color: $base-color;
-	}
-}
-.user-info-box {
-	height: 180rpx;
-	color: white;
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	position: relative;
-	z-index: 1;
-	.detail {
-		height: 130rpx;
-		.portrait-box {
-			height: 100%;
-			.portrait {
-				width: 130rpx;
-				height: 100%;
-				border: 5rpx solid #fff;
-				border-radius: 50%;
-			}
-		}
-		.info-box {
-			margin-left: 20rpx;
-			line-height: 1.5;
-			.username {
-				font-size: $font-lg + 6rpx;
-				height: 100%;
-			}
-		}
-	}
-	.config {
-		font-size: 48rpx;
-		height: 130rpx;
-		.setting {
-			margin-right: 51rpx;
-		}
-	}
-}
-
-.vip-card-box {
-	display: flex;
-	flex-direction: column;
-	color: #f7d680;
-	height: 240rpx;
-	background: linear-gradient(left, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.8));
-	border-radius: 16rpx 16rpx 0 0;
-	overflow: hidden;
-	position: relative;
-	padding: 20rpx 24rpx;
-	.card-bg {
-		position: absolute;
-		top: 20rpx;
-		right: 0;
-		width: 380rpx;
-		height: 260rpx;
-	}
-	.b-btn {
-		position: absolute;
-		right: 20rpx;
-		top: 16rpx;
-		width: 132rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		font-size: 22rpx;
-		color: #36343c;
-		border-radius: 20px;
-		background: linear-gradient(left, #f9e6af, #ffd465);
-		z-index: 1;
-	}
-	.tit {
-		font-size: $font-base + 2rpx;
-		color: #f7d680;
-		margin-bottom: 28rpx;
-		.iconfont {
-			color: #f6e5a3;
-			margin-right: 16rpx;
-		}
-	}
-	.e-b {
-		font-size: $font-sm;
-		color: #d8cba9;
-		margin-top: 10rpx;
-	}
-}
-.cover-container {
-	background: $page-color-base;
-	margin-top: -150rpx;
-	padding: 0 30rpx;
-	position: relative;
-	background: #f5f5f5;
-	padding-bottom: 20rpx;
-	.arc {
-		position: absolute;
-		left: 0;
-		top: -34rpx;
-		width: 100%;
-		height: 36rpx;
-	}
-}
-.tj-sction {
-	@extend %section;
-	.tj-item {
-		@extend %flex-center;
-		flex-direction: column;
-		height: 140rpx;
-		font-size: $font-sm;
-		color: #75787d;
-	}
-	.num {
-		font-size: $font-lg;
-		color: $font-color-dark;
-		margin-bottom: 8rpx;
-	}
-}
-
-.item-box {
-	border-radius: 10rpx;
-	background-color: white;
-	margin-top: 20rpx;
-	.box-title {
-		line-height: 1;
-		padding: 30rpx;
-		.title {
-			font-size: $font-lg;
-			font-weight: bold;
-		}
-		.link {
-			font-size: $font-base - 2rpx;
-			color: $font-color-light;
-		}
-	}
-	.order-section {
-		@extend %section;
-		padding: 28rpx 0;
-		.order-item {
-			@extend %flex-center;
-			width: 120rpx;
-			height: 120rpx;
-			border-radius: 10rpx;
-			font-size: $font-sm;
-			color: $font-color-dark;
-		}
-		.iconfont {
-			font-size: 48rpx;
-			margin-bottom: 18rpx;
-			color: #fa436a;
-		}
-		.icon-shouhoutuikuan {
-			font-size: 44rpx;
-		}
-		.icon {
-			height: 50rpx;
-			width: 48rpx;
-			margin-bottom: 18rpx;
-			background-size: 100%;
-			background-repeat: no-repeat;
-			background-position: center;
-			.icon-img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-	}
-}
-
-.history-section {
-	// padding: 30rpx 0 0;
-	margin-top: 20rpx;
-	background: #fff;
-	border-radius: 10rpx;
-	.sec-header {
-		display: flex;
-		align-items: center;
-		font-size: $font-base;
-		color: $font-color-dark;
-		line-height: 40rpx;
-		margin-left: 30rpx;
-		padding-top: 30rpx;
-		.iconfont {
-			font-size: 44rpx;
-			color: $color-red;
-			margin-right: 16rpx;
-			line-height: 40rpx;
-		}
-	}
-	.h-list {
-		white-space: nowrap;
-		padding: 30rpx 30rpx 0;
-		.h-list-image {
-			display: inline-block;
-			width: 160rpx;
-			height: 160rpx;
-			margin-right: 20rpx;
-			border-radius: 10rpx;
-		}
-	}
-}
-</style>

+ 0 - 321
pages/user/withdrawal.vue

@@ -1,321 +0,0 @@
-<template>
-	<view class="content">
-		<uni-notice-bar single="true" text="每月25号到月底可提现上月结算余额"></uni-notice-bar>
-		<view class="content-money">
-			<view class="flex ">
-				<view class="buttom">
-					<view class="icon">{{ money | getMoneyStyle }}</view>
-					<text class="text">可提现佣金</text>
-				</view>
-				<view class="interval"></view>
-				<view class="buttom">
-					<view class=" icon">{{ freeze | getMoneyStyle }}</view>
-					<text class="text">待审核提现佣金</text>
-				</view>
-			</view>
-		</view>
-		<view class="row-box">
-			<view class="title">提现金额</view>
-			<view class="row">
-				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="withdrawal" :placeholder="'最低提现金额' + minPrice + '元'" placeholder-class="placeholder" />
-				<view class="buttom" @click="withdrawal = money">全部提现</view>
-			</view>
-		</view>
-		<!-- #ifndef MP-WEIXIN -->
-		<view class="list" v-if="!weichatBsrowser">
-			<radio-group @change="tabRadio">
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconweixin1"></view>
-						<view class="title-box">
-							<view class="title"><text>提现至微信</text></view>
-						</view>
-						<view class="right"><radio value="weixin" color="#5dbc7c" :checked="type == 'weixin'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont iconzhifubao"></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="aliData.fullname">提现至支付宝</text>
-								<text v-else>请创建支付宝账号</text>
-							</view>
-							<view class="node">
-								<text v-if="aliData.fullname">真实姓名({{ aliData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="alipay" color="#5dbc7c" :checked="type == 'alipay'" /></view>
-					</view>
-				</label>
-				<label>
-					<view class="box">
-						<view class="icon iconfont"><image class="icon-img" src="/static/icon/i8.png" mode="aspectFit"></image></view>
-						<view class="title-box">
-							<view class="title">
-								<text v-if="bankData.bankno">{{ bankData.bank + ' ' + bankData.bankno }}</text>
-								<text v-else>请创建银行账号</text>
-							</view>
-							<view class="node">
-								<text v-if="bankData.fullname">真实姓名({{ bankData.fullname }})</text>
-							</view>
-						</view>
-						<view class="right"><radio value="bank" color="#5dbc7c" :checked="type == 'bank'" /></view>
-					</view>
-				</label>
-			</radio-group>
-		</view>
-		<!-- #endif -->
-		<button class="add-btn up" @click="confirm">提交申请</button>
-		<button class="add-btn modified" v-if="!weichatBsrowser" @click="navTo('/pages/money/account')">账号管理</button>
-	</view>
-</template>
-
-<script>
-import { getMoneyStyle } from '@/utils/rocessor.js';
-import { extractCash, extractBank, aliInfo, bankInfo } from '@/api/wallet.js';
-import uniNoticeBar from '@/components/uni-notice-bar/uni-notice-bar.vue';
-export default {
-	filters: {
-		getMoneyStyle
-	},
-	components: {
-		uniNoticeBar
-	},
-	data() {
-		return {
-			type: 'weixin', //提现方式
-			money: '0.00', //可提现金额
-			freeze: '0.0', //冻结金额
-			withdrawal: '', //提现金额
-			minPrice: '', //最少提现金额
-			aliData: {},
-			bankData: {},
-			// #ifdef H5
-			weichatBsrowser: false
-			// #endif
-		};
-	},
-	onLoad(options) {
-		// #ifdef H5
-		this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
-		// #endif
-		//加载提现信息
-		this.loadData();
-		// 加载提款账号信息
-		this.loadAli();
-		this.loadBank();
-	},
-	methods: {
-		// 更新数据
-		dataUp() {
-			this.loadAli();
-			this.loadBank();
-		},
-		//加载数据
-		async loadAli(source) {
-			aliInfo({}).then(e => {
-				this.aliData = e.data;
-			});
-		},
-		// 加载银行卡信息
-		async loadBank() {
-			bankInfo({}).then(e => {
-				this.bankData = e.data;
-			});
-		},
-		// 加载余额信息
-		async loadData() {
-			extractBank({}).then(({ data }) => {
-				this.money = data.commissionCount;
-				this.minPrice = data.minPrice;
-				this.freeze = data.incommissionCount;
-			});
-		},
-		// 跳转
-		navTo(url) {
-			uni.navigateTo({
-				url: url
-			});
-		},
-		// 切换选中对象
-		tabRadio(e) {
-			this.type = e.detail.value;
-		},
-		// 提交
-		confirm() {
-			let data = {
-				extract_type: this.type, //bank -银行卡 alipay-支付宝 weixin-微信
-				money: this.withdrawal, //金额
-				money_type: 0 //0佣金1余额
-			};
-
-			if (this.withdrawal < this.minPrice) {
-			uni.showToast({
-				title: '提现金额不可少于'+this.minPrice,
-				duration: 2000,
-				mask: false,
-				icon: 'none',
-			})
-				return;
-			}
-			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.showToast({
-						title: '提交成功',
-						duration: 2000,
-						position: 'top'
-					});
-				})
-				.catch(e => {
-					console.log();
-				});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	height: 100%;
-}
-.content-money {
-	padding: 30rpx 0;
-	background: #ffffff;
-}
-.flex {
-	background-color: #ffffff;
-	text-align: center;
-	margin: 0 30rpx;
-	border-radius: $border-radius-sm;
-	.buttom {
-		font-size: $font-lg;
-		width: 50%;
-	}
-	.interval {
-		width: 2px;
-		height: 60rpx;
-		background-color: #eeeeee;
-	}
-	.icon {
-		background-size: 100%;
-		font-size: 42rpx;
-		color: $font-color-dark;
-		font-weight: bold;
-		background-repeat: no-repeat;
-		background-position: center;
-	}
-	.text {
-		color: $font-color-light;
-	}
-}
-
-.row-box {
-	margin-top: 30rpx;
-	padding: 20rpx 30rpx;
-	background: #fff;
-	.title {
-		font-size: $font-base + 2rpx;
-		color: $font-color-dark;
-	}
-	.row {
-		display: flex;
-		align-items: center;
-		position: relative;
-		height: 80rpx;
-		.tit {
-			flex-shrink: 0;
-			width: 40rpx;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.input {
-			flex: 1;
-			font-size: 30rpx;
-			color: $font-color-dark;
-		}
-		.iconlocation {
-			font-size: 36rpx;
-			color: $font-color-light;
-		}
-
-		.buttom {
-			color: $font-color-spec;
-			font-size: $font-base;
-		}
-	}
-}
-.add-btn {
-	&.modified {
-		color: $base-color;
-	}
-	&.up {
-		background-color: $base-color;
-		color: #fff;
-	}
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 0 auto;
-	margin-top: 30rpx;
-	font-size: $font-lg;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
-
-.list {
-	padding-left: 30rpx;
-	margin-top: 30rpx;
-	background-color: #ffffff;
-	.box {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: 120rpx;
-		border-bottom: 1px solid $border-color-light;
-		.icon {
-			font-size: 48rpx;
-			padding-right: 20rpx;
-			.icon-img {
-				height: 50rpx;
-				width: 50rpx;
-			}
-		}
-		.iconweixin1 {
-			color: #18bf16;
-		}
-		.iconzhifubao {
-			color: #08aaec;
-		}
-		.title-box {
-			flex-grow: 1;
-			text-align: left;
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-base;
-			}
-			.node {
-				font-size: $font-sm;
-				color: $font-color-light;
-			}
-		}
-	}
-}
-/deep/ .uni-radio-input {
-	width: 45rpx;
-	height: 45rpx;
-}
-</style>

BIN
static/icon/appleIcon.png


BIN
static/icon/c3.png


BIN
static/icon/c5.png


BIN
static/icon/c6.png


BIN
static/icon/c7.png


BIN
static/icon/c8.png


BIN
static/icon/i1.png


BIN
static/icon/i2.png


BIN
static/icon/i3.png


BIN
static/icon/i4.png


BIN
static/icon/i5.png


BIN
static/icon/i6.png


BIN
static/icon/i7.png


BIN
static/icon/i8.png


BIN
static/icon/img01.png


BIN
static/icon/img02.png


BIN
static/icon/img03.png


BIN
static/icon/img04.png


BIN
static/icon/img05.png


BIN
static/icon/img06.png


BIN
static/icon/img07.png


BIN
static/icon/img08.png


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff