Sfoglia il codice sorgente

修改tinymce
系统管理新增用户正确输入表单后还提示手机号为空问题处理
脱敏信息处理
清除会员价优化
售后订单详情显示退款金额
售后订单查询-去掉无售后状态
修复设置默认收货地址失败的bug
提交订单时删除购物车的下单商品
我的卡券请求参数问题处理和失效卡券显示
平台介入拒绝
浏览足迹滑动删除和页面优化
足迹删除确认弹窗
无地址显示状态
店铺秒杀修改
购物车删除样式混乱
修复价格4舍5入的问题
重构购物车获取价格逻辑,调用后台返回计算结果
修复购物车全选报错的bug
退货填写地址路径修改
修改订单详情申请售后传参
待收货申请退货退款问题处理
商家首页和软件首页商品为空组件加是否展示逻辑
每日上新添加场景营销显示

yongzonghuang 4 anni fa
parent
commit
cbee259d8e
32 ha cambiato i file con 3692 aggiunte e 2634 eliminazioni
  1. 691 278
      App.vue
  2. 1 1
      components/canvasShow/basics/group/app/index.vue
  3. 5 3
      components/canvasShow/basics/newProduct/app/index.vue
  4. 1 1
      components/canvasShow/basics/price/app/index.vue
  5. 8 4
      components/canvasShow/basics/product/app/index.vue
  6. 227 137
      components/canvasShow/canvasShowPage.vue
  7. 8 4
      components/wx/wxSendCoupon.vue
  8. 8 6
      config/api.js
  9. 8 4
      manifest.json
  10. 15 0
      pages.json
  11. 631 530
      pages/tabbar/cart/index.vue
  12. 229 171
      pages/tabbar/index/index.vue
  13. 41 18
      pages_category_page1/discount/spikeList.vue
  14. 2 1
      pages_category_page1/goodsModule/canvasGoods.vue
  15. 1095 1061
      pages_category_page1/goodsModule/goodsDetails.vue
  16. 1 1
      pages_category_page1/orderModule/addLogistics.vue
  17. 48 14
      pages_category_page1/orderModule/afterSaleApply.vue
  18. 8 4
      pages_category_page1/orderModule/afterSaleApplyRefund.vue
  19. 18 15
      pages_category_page1/orderModule/afterSaleApplyRetund.vue
  20. 8 7
      pages_category_page1/orderModule/index.vue
  21. 16 13
      pages_category_page1/orderModule/orderConfirm.vue
  22. 12 7
      pages_category_page1/orderModule/orderDetails.vue
  23. 12 0
      pages_category_page2/orderModule/refundDetails.vue
  24. 1 1
      pages_category_page2/orderModule/returnDetails.vue
  25. 28 22
      pages_category_page2/userModule/accountLogin.vue
  26. 238 212
      pages_category_page2/userModule/address.vue
  27. 86 14
      pages_category_page2/userModule/footprintList.vue
  28. 27 21
      pages_category_page2/userModule/login.vue
  29. 21 20
      pages_category_page2/userModule/messageDetail.vue
  30. 109 18
      pages_category_page2/userModule/personalDetails.vue
  31. 21 14
      pages_category_page2/userModule/protocol.vue
  32. 68 32
      pages_category_page2/userModule/register.vue

+ 691 - 278
App.vue

@@ -3,307 +3,720 @@
 // const miniShopPlugin = requirePlugin('mini-shop-plugin');
 // // #endif
 export default {
-	onLaunch: function(options) {
-		if (options && options.path === 'pages_category_page1/goodsModule/goodsDetails' && options.query) {
-			this.globalData.productShareItem = options.query
-		}
-		if (options && options.path === 'pages_category_page1/store/index' && options.query) {
-			this.globalData.shopShareItem = options.query
-		}
-        if (options && options.path === 'pages_category_page1/distributionModule/recruit' && options.query) {
-            this.globalData.distributeRecruitItem = options.query
-        }
-        if (options && options.path === 'pages_category_page1/goodsModule/inviteSpell' && options.query) {
-            this.globalData.inviteSpellShareItem = options.query
+  onLaunch: function (options) {
+    if (options && options.path === 'pages_category_page1/goodsModule/goodsDetails' && options.query) {
+      this.globalData.productShareItem = options.query
+    }
+    if (options && options.path === 'pages_category_page1/store/index' && options.query) {
+      this.globalData.shopShareItem = options.query
+    }
+    if (options && options.path === 'pages_category_page1/distributionModule/recruit' && options.query) {
+      this.globalData.distributeRecruitItem = options.query
+    }
+    if (options && options.path === 'pages_category_page1/goodsModule/inviteSpell' && options.query) {
+      this.globalData.inviteSpellShareItem = options.query
+    }
+    //判断设备是否为 iPhone
+    const self = this
+    uni.getSystemInfo({
+      success: function (res) {
+        console.log(res, '检查机型')
+        // 根据 model 进行判断
+        // const iphoneModels = [
+        // 	'iPhone X',
+        // 	'iPhone XR',
+        // 	'iPhone XS Max',
+        // 	'iPhone 11',
+        // 	'iPhone 11 Pro',
+        // 	'iPhone 11 Pro Max',
+        // 	'iPhone 12/13 (Pro)',
+        // 	'iPhone 12/13 mini',
+        // 	'iPhone 12/13 Pro Max'
+        // ]
+        if (res.safeArea.top > 20 && res.model.indexOf('iPhone') !== -1) {
+          self.globalData.isIphone = true
         }
-		//判断设备是否为 iPhone
-		const self = this
-		uni.getSystemInfo({
-		  success: function(res) {
-			  console.log(res,'检查机型')
-				// 根据 model 进行判断
-				// const iphoneModels = [
-				// 	'iPhone X',
-				// 	'iPhone XR',
-				// 	'iPhone XS Max',
-				// 	'iPhone 11',
-				// 	'iPhone 11 Pro',
-				// 	'iPhone 11 Pro Max',
-				// 	'iPhone 12/13 (Pro)',
-				// 	'iPhone 12/13 mini',
-				// 	'iPhone 12/13 Pro Max'
-				// ]
-				if (res.safeArea.top > 20 && res.model.indexOf('iPhone') !== -1) {
-				  self.globalData.isIphone = true
-				}
-		  }
-		})
-		// 购物车右上角数量
-		let allCartNum = (uni.getStorageSync('allCartNum')).toString()
-		if(allCartNum > 0){
-			uni.setTabBarBadge({
-			   index: 2,
-			   text: allCartNum
-			})
-		}
-	},
-	globalData: {
-		isIphone:false,
-	},
+      }
+    })
+    // 购物车右上角数量
+    let allCartNum = (uni.getStorageSync('allCartNum')).toString()
+    if (allCartNum > 0) {
+      uni.setTabBarBadge({
+        index: 2,
+        text: allCartNum
+      })
+    }
+  },
+  globalData: {
+    isIphone: false,
+  },
 };
 </script>
 
 <style lang="scss">
-	/*每个页面公共css */
-	@import "uview-ui/index.scss";
-  uni-rich-text img {
-    max-width: 100% !important;
+/*每个页面公共css */
+@import "uview-ui/index.scss";
+
+uni-rich-text img {
+  max-width: 100% !important;
+}
+
+.line1 {
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  overflow: hidden;
+}
+
+.wid {
+  width: 100%;
+}
+
+.fs4 {
+  font-size: 4upx;
+}
+
+.fs18 {
+  font-size: 18upx;
+}
+
+.fs20 {
+  font-size: 20upx;
+}
+
+.fs22 {
+  font-size: 22upx;
+}
+
+.fs24 {
+  font-size: 24upx;
+}
+
+.fs26 {
+  font-size: 26upx;
+}
+
+.fs28 {
+  font-size: 28upx;
+}
+
+.fs30 {
+  font-size: 30upx;
+}
+
+.fs32 {
+  font-size: 32upx;
+}
+
+.fs34 {
+  font-size: 34upx;
+}
+
+.fs36 {
+  font-size: 36upx;
+}
+
+.fs38 {
+  font-size: 38upx;
+}
+
+.fs40 {
+  font-size: 40upx;
+}
+
+.fs42 {
+  font-size: 42upx;
+}
+
+.fs44 {
+  font-size: 44upx;
+}
+
+.fs46 {
+  font-size: 46upx;
+}
+
+.fs48 {
+  font-size: 46upx;
+}
+
+.fs50 {
+  font-size: 50upx;
+}
+
+.fs60 {
+  font-size: 60upx;
+}
+
+.fs-bold {
+  font-weight: bold;
+}
+
+.fs-weight-300 {
+  font-weight: 300;
+}
+
+.fs-weight-200 {
+  font-weight: 200;
+}
+
+.fs-weight-400 {
+  font-weight: 400;
+}
+
+
+.flex-display {
+  display: flex;
+}
+
+.flex-center {
+  display: flex;
+  justify-content: center;
+}
+
+.flex-items {
+  display: flex;
+  align-items: center;
+}
+
+.flex-items-plus {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.flex-start {
+  display: flex;
+  justify-content: flex-start;
+}
+
+.flex-end {
+  display: flex;
+  justify-content: flex-end;
+}
+
+.flex-end-plus {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+}
+
+.flex-column {
+  flex-direction: column
+}
+
+.flex-column-plus {
+  display: flex;
+  flex-direction: column
+}
+
+.flex-row {
+  flex-direction: row
+}
+
+.flex-row-plus {
+  display: flex;
+  flex-direction: row
+}
+
+.flex-sp-around {
+  justify-content: space-around;
+}
+
+.flex-sp-between {
+  justify-content: space-between;
+}
+
+.text-align {
+  text-align: center;
+}
+
+.flex-wrap-1 {
+  display: flex;
+  flex-wrap: wrap
+}
+
+.flex-nowrap-1 {
+  display: flex;
+  flex-wrap: nowrap
+}
+
+.align-end {
+  display: flex;
+  align-items: flex-end;
+}
+
+.align-sp-between {
+  align-content: space-between;
+}
+
+
+.mar-top-5 {
+  margin-top: 5upx;
+}
+
+.mar-top-10 {
+  margin-top: 10upx;
+}
+
+.mar-top-20 {
+  margin-top: 20upx;
+}
+
+.mar-top-30 {
+  margin-top: 30upx;
+}
+
+.mar-top-32 {
+  margin-top: 32upx;
+}
+
+.mar-top-36 {
+  margin-top: 36upx;
+}
+
+.mar-top-40 {
+  margin-top: 40upx;
+}
+
+.mar-top-50 {
+  margin-top: 50upx;
+}
+
+.mar-top-60 {
+  margin-top: 60upx;
+}
+
+.mar-top-70 {
+  margin-top: 70upx;
+}
+
+.mar-top-100 {
+  margin-top: 100upx;
+}
+
+.mar-top-percent40 {
+  margin-top: 40%;
+}
+
+.mar-top-half {
+  margin-top: 50%;
+}
+
+.mar-left-6 {
+  margin-left: 6upx;
+}
+
+.mar-left-5 {
+  margin-left: 5upx;
+}
+
+.mar-left-10 {
+  margin-left: 10upx;
+}
+
+.mar-left-20 {
+  margin-left: 20upx;
+}
+
+.mar-left-30 {
+  margin-left: 30upx;
+}
+
+.mar-left-35 {
+  margin-left: 35upx;
+}
+
+.mar-left-40 {
+  margin-left: 40upx;
+}
+
+.mar-left-50 {
+  margin-left: 50upx;
+}
+
+.mar-left-60 {
+  margin-left: 60upx;
+}
+
+.mar-left-70 {
+  margin-left: 70upx;
+}
+
+.mar-right-10 {
+  margin-right: 10upx;
+}
+
+.mar-right-20 {
+  margin-right: 20upx;
+}
+
+.mar-right-25 {
+  margin-right: 25upx;
+}
+
+.mar-right-30 {
+  margin-right: 30upx;
+}
+
+.mar-right-35 {
+  margin-right: 35upx;
+}
+
+.mar-right-40 {
+  margin-right: 40upx;
+}
+
+.mar-right-50 {
+  margin-right: 50upx;
+}
+
+.pad-left-10 {
+  padding-left: 10upx;
+}
+
+.pad-left-20 {
+  padding-left: 20upx;
+}
+
+.pad-left-40 {
+  padding-left: 40upx;
+}
+
+.pad-right-20 {
+  padding-right: 20upx;
+}
+
+.pad-top-20 {
+  padding-top: 20upx;
+}
+
+.pad-top-40 {
+  padding-top: 40upx;
+}
+
+.pad-bot-20 {
+  padding-bottom: 20upx;
+}
+
+.pad-topbot-20 {
+  padding: 20upx 0upx;
+}
+
+.pad-topbot-5 {
+  padding: 0upx 5upx;
+}
+
+.pad-topbot-10 {
+  padding: 0upx 10upx;
+}
+
+.pad-topbot-50 {
+  padding: 50upx 0upx;
+}
+
+.pad-bot-20 {
+  padding-bottom: 20upx;
+}
+
+.pad-bot-30 {
+  padding-bottom: 30upx;
+}
+
+.pad-bot-40 {
+  padding-bottom: 40upx;
+}
+
+.pad-bot-100 {
+  padding-bottom: 100upx;
+}
+
+.pad-bot-140 {
+  padding-bottom: 140upx;
+}
+
+.bor-rad-30 {
+  border-radius: 30upx;
+}
+
+.bor-rad-45 {
+  border-radius: 45upx;
+}
+
+.bor-rad-half {
+  border-radius: 50%;
+}
+
+.backColor {
+  background-color: #009688;
+}
+
+.backColorFFF {
+  background-color: #FFFFFF;
+}
+
+.pos-abs {
+  position: absolute;
+}
+
+.bor-bot-line {
+  border-bottom: #C8C7CC 1upx solid;
+}
+
+.bor-line-F7F7F7 {
+  border-bottom: #F7F7F7 1upx solid;
+}
+
+.bor-line-E5E5E5 {
+  border-bottom: #E5E5E5 1upx solid;
+}
+
+.borRig-line-E5E5E5 {
+  border-right: #DDDDDD 2upx solid;
+}
+
+.borRig-line-20 {
+  border-bottom: #F7F7F7 20upx solid;
+}
+
+.font-color-red {
+  color: red;
+}
+
+.font-color-FFF {
+  color: #FFFFFF;
+}
+
+.font-color-8A734A {
+  color: #8A734A;
+}
+
+.font-color-71521B {
+  color: #71521B;
+}
+
+.font-color-222 {
+  color: #222222;
+}
+
+.font-color-333 {
+  color: #333333;
+}
+
+.font-color-666 {
+  color: #666666;
+}
+
+.font-color-999 {
+  color: #999999;
+}
+
+.font-color-656 {
+  color: #656565;
+}
+
+.font-color-DDD {
+  color: #DDDDDD;
+}
+
+.font-color-CCC {
+  color: #CCCCCC;
+}
+
+.font-color-FFEBC4 {
+  color: #FFEBC4;
+}
+
+.font-color-1CC363 {
+  color: #1CC363;
+}
+
+.font-color-47A7EE {
+  color: #47A7EE;
+}
+
+.font-color-C5AA7B {
+  color: #C5AA7B;
+}
+
+.font-color-FF7700 {
+  color: #FF7700;
+}
+
+.font-color-FF7911 {
+  color: #FF7911;
+}
+
+.font-color-80 {
+  color: #808080;
+}
+
+.font-color-DD {
+  color: #DD524D;
+}
+
+.font-color-C83732 {
+  color: #C83732;
+}
+
+.font-color-3F {
+  color: #3F536E;
+}
+
+.font-color-009 {
+  color: #009688;
+}
+
+.font-weight-500 {
+  font-weight: 500;
+}
+
+.font-weight-bold {
+  font-weight: bold;
+}
+
+.overflow {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.overflowNoDot {
+  display: block;
+  overflow: hidden;
+}
+
+.discountsPriceLine {
+  text-decoration: line-through;
+}
+
+.border-bottom-Line {
+  border-bottom: 1upx solid #EDEDED;
+}
+
+.decoration {
+  text-decoration: line-through;
+}
+
+.anonymous {
+  margin-top: 25upx;
+
+  .uni-checkbox-input {
+    border-color: #C5AA7B !important;
+    width: 30upx;
+    height: 30upx;
+  }
+
+  .uni-checkbox-input-checked:before {
+    font-size: 30upx !important;
   }
 
-	.line1{
-		text-overflow: ellipsis;
-		white-space: nowrap;
-		overflow: hidden;
-	}
-
-	.wid{width: 100%;}
-	.fs4{font-size: 4upx;}
-	.fs18{font-size: 18upx;}
-	.fs20{font-size: 20upx;}
-	.fs22{font-size: 22upx;}
-	.fs24{font-size: 24upx;}
-	.fs26{font-size: 26upx;}
-	.fs28{font-size: 28upx;}
-	.fs30{font-size: 30upx;}
-	.fs32{font-size: 32upx;}
-	.fs34{font-size: 34upx;}
-	.fs36{font-size: 36upx;}
-	.fs38{font-size: 38upx;}
-	.fs40{font-size: 40upx;}
-	.fs42{font-size: 42upx;}
-	.fs44{font-size: 44upx;}
-	.fs46{font-size: 46upx;}
-	.fs48{font-size: 46upx;}
-	.fs50{font-size: 50upx;}
-	.fs60{font-size: 60upx;}
-	.fs-bold{font-weight: bold;}
-	.fs-weight-300{font-weight: 300;}
-	.fs-weight-200{font-weight: 200;}
-	.fs-weight-400{font-weight: 400;}
-
-
-	.flex-display{display: flex;}
-	.flex-center{display: flex;justify-content: center;}
-	.flex-items{display: flex;align-items:center;}
-	.flex-items-plus{display: flex;justify-content: center;align-items:center;}
-	.flex-start{display: flex;justify-content: flex-start;}
-	.flex-end{display: flex;justify-content: flex-end;}
-	.flex-end-plus{display: flex;justify-content: flex-end;align-items:center;}
-	.flex-column{flex-direction: column}
-	.flex-column-plus{display: flex;flex-direction: column}
-	.flex-row{flex-direction: row}
-	.flex-row-plus{display: flex;flex-direction: row}
-	.flex-sp-around{justify-content:space-around;}
-	.flex-sp-between{justify-content:space-between;}
-	.text-align{text-align: center;}
-	.flex-wrap-1{display: flex;flex-wrap: wrap}
-	.flex-nowrap-1{display: flex;flex-wrap: nowrap}
-	.align-end{display: flex;align-items:flex-end;}
-	.align-sp-between{align-content: space-between;}
-
-
-	.mar-top-5{margin-top: 5upx;}
-	.mar-top-10{margin-top: 10upx;}
-	.mar-top-20{margin-top: 20upx;}
-	.mar-top-30{margin-top: 30upx;}
-	.mar-top-32{margin-top: 32upx;}
-	.mar-top-36{margin-top: 36upx;}
-	.mar-top-40{margin-top: 40upx;}
-	.mar-top-50{margin-top: 50upx;}
-	.mar-top-60{margin-top: 60upx;}
-	.mar-top-70{margin-top: 70upx;}
-	.mar-top-100{margin-top: 100upx;}
-	.mar-top-percent40{margin-top: 40%;}
-	.mar-top-half{margin-top: 50%;}
-	.mar-left-6{margin-left: 6upx;}
-	.mar-left-5{margin-left: 5upx;}
-	.mar-left-10{margin-left: 10upx;}
-	.mar-left-20{margin-left: 20upx;}
-	.mar-left-30{margin-left: 30upx;}
-  .mar-left-35{margin-left: 35upx;}
-	.mar-left-40{margin-left: 40upx;}
-	.mar-left-50{margin-left: 50upx;}
-	.mar-left-60{margin-left: 60upx;}
-	.mar-left-70{margin-left: 70upx;}
-	.mar-right-10{margin-right: 10upx;}
-	.mar-right-20{margin-right: 20upx;}
-	.mar-right-25{margin-right: 25upx;}
-	.mar-right-30{margin-right: 30upx;}
-  .mar-right-35{margin-right: 35upx;}
-	.mar-right-40{margin-right: 40upx;}
-	.mar-right-50{margin-right: 50upx;}
-	.pad-left-10{padding-left: 10upx;}
-	.pad-left-20{padding-left: 20upx;}
-	.pad-left-40{padding-left: 40upx;}
-	.pad-right-20{padding-right: 20upx;}
-	.pad-top-20{padding-top: 20upx;}
-	.pad-top-40{padding-top: 40upx;}
-	.pad-bot-20{padding-bottom: 20upx;}
-	.pad-topbot-20{padding:20upx 0upx;}
-	.pad-topbot-5{padding:0upx 5upx;}
-	.pad-topbot-10{padding:0upx 10upx;}
-	.pad-topbot-50{padding:50upx 0upx;}
-	.pad-bot-20{padding-bottom:20upx;}
-	.pad-bot-30{padding-bottom:30upx;}
-	.pad-bot-40{padding-bottom:40upx;}
-	.pad-bot-100{padding-bottom:100upx;}
-	.pad-bot-140{padding-bottom:140upx;}
-
-	.bor-rad-30{border-radius: 30upx;}
-	.bor-rad-45{border-radius: 45upx;}
-	.bor-rad-half{border-radius: 50%;}
-
-	.backColor{background-color: #009688;}
-	.backColorFFF{background-color: #FFFFFF;}
-
-	.pos-abs{position: absolute;}
-
-	.bor-bot-line{border-bottom: #C8C7CC 1upx solid;}
-	.bor-line-F7F7F7{border-bottom: #F7F7F7 1upx solid;}
-	.bor-line-E5E5E5{border-bottom: #E5E5E5 1upx solid;}
-	.borRig-line-E5E5E5{border-right: #DDDDDD 2upx solid;}
-	.borRig-line-20{border-bottom: #F7F7F7 20upx solid;}
-
-	.font-color-red{color: red;}
-	.font-color-FFF{color: #FFFFFF;}
-	.font-color-8A734A{color: #8A734A;}
-	.font-color-71521B{color: #71521B;}
-	.font-color-222{color: #222222;}
-	.font-color-333{color: #333333;}
-	.font-color-666{color: #666666;}
-	.font-color-999{color: #999999;}
-	.font-color-656{color: #656565;}
-	.font-color-DDD{color: #DDDDDD;}
-	.font-color-CCC{color: #CCCCCC;}
-	.font-color-FFEBC4{color: #FFEBC4;}
-	.font-color-1CC363{color: #1CC363;}
-	.font-color-47A7EE{color: #47A7EE;}
-	.font-color-C5AA7B{color: #C5AA7B;}
-	.font-color-FF7700{color: #FF7700;}
-	.font-color-FF7911{color: #FF7911;}
-	.font-color-80{color: #808080;}
-	.font-color-DD{color: #DD524D;}
-	.font-color-C83732{color: #C83732;}
-	.font-color-3F{color: #3F536E;}
-	.font-color-009{color: #009688;}
-	.font-weight-500{font-weight: 500;}
-	.font-weight-bold{font-weight: bold;}
-	.overflow{overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}
-	.overflowNoDot{display:block;overflow:hidden;}
-	.discountsPriceLine{text-decoration:line-through;}
-	.border-bottom-Line{border-bottom: 1upx solid #EDEDED;}
-  .decoration {text-decoration: line-through;}
-  .anonymous {
-    margin-top: 25upx;
+  .uni-checkbox-input-checked {
+    background: #C5AA7B;
+  }
+}
+
+.footprint {
+  .itemList {
     .uni-checkbox-input {
       border-color: #C5AA7B !important;
-      width: 30upx;
-      height: 30upx;
+      width: 36upx;
+      height: 36upx;
+      border-radius: 50%;
+      margin-right: 20upx;
     }
+
     .uni-checkbox-input-checked:before {
-      font-size: 30upx !important;
+      font-size: 36upx !important;
     }
+
     .uni-checkbox-input-checked {
       background: #C5AA7B;
     }
   }
-  .footprint {
-    .itemList {
-      .uni-checkbox-input {
-        border-color: #C5AA7B !important;
-        width: 36upx;
-        height: 36upx;
-        border-radius: 50%;
-        margin-right: 20upx;
-      }
-      .uni-checkbox-input-checked:before {
-        font-size: 36upx !important;
-      }
-      .uni-checkbox-input-checked {
-        background: #C5AA7B;
-      }
+}
+
+.itemInfo {
+  uni-slider {
+    margin: 0;
+
+    .uni-slider-thumb {
+      display: none;
     }
-  }
-  .itemInfo {
-    uni-slider {
-      margin: 0;
-      .uni-slider-thumb {
-        display: none;
-      }
-      .uni-slider-handle-wrapper {
-        height: 18upx;
-        border-radius: 0;
-        border: 1upx solid #FF736C;
-      }
-      .uni-slider-track {
-        border-radius: 0;
-      }
-      .uni-slider-tap-area {
-        flex: 0 0 70%;
-        padding: 0;
-      }
+
+    .uni-slider-handle-wrapper {
+      height: 18upx;
+      border-radius: 0;
+      border: 1upx solid #FF736C;
     }
-  }
-  .uni-modal {
-    padding: 20rpx;
-    box-sizing: border-box;
-  }
-  uni-modal .uni-modal__ft:after {
-    border-top: none;
-  }
-  uni-modal .uni-modal__btn {
-    color: #333333;
-    border: 2rpx solid #333333;
-    font-weight: 400;
-    margin: 0 10rpx;
-    font-size: 28rpx;
-  }
-  .uni-tabbar .uni-tabbar__reddot{
-	  background: #C5AA7B;
-	  color: #FFFFFF;
-  }
-  uni-checkbox:not([disabled]) .uni-checkbox-input:hover {
-    border-color: #C5AA7B;
-  }
-  .u-arrow {
-    display: inline-block;
-    width: 20rpx;
-    height: 20rpx;
-    border-top: 1rpx solid #999;
-    border-right: 1rpx solid #999;
-  }
 
-  .u-arrow-up {
-    transform: rotate(-45deg);
-  }
+    .uni-slider-track {
+      border-radius: 0;
+    }
 
-  .u-arrow-down {
-    transform: rotate(135deg);
+    .uni-slider-tap-area {
+      flex: 0 0 70%;
+      padding: 0;
+    }
   }
+}
 
-  .u-arrow-left {
-    transform: rotate(-135deg);
-  }
+.uni-modal {
+  padding: 20rpx;
+  box-sizing: border-box;
+}
 
-  .u-arrow-right {
-    transform: rotate(45deg);
-  }
-  .uni-picker-container .uni-picker-action.uni-picker-action-confirm {
-    color: #C5AA7B;
-  }
-  .u-drawer-content {
-    border-radius: 0 !important;
-  }
+uni-modal .uni-modal__ft:after {
+  border-top: none;
+}
+
+uni-modal .uni-modal__btn {
+  color: #333333;
+  border: 2rpx solid #333333;
+  font-weight: 400;
+  margin: 0 10rpx;
+  font-size: 28rpx;
+}
+
+.uni-tabbar .uni-tabbar__reddot {
+  background: #C5AA7B;
+  color: #FFFFFF;
+}
+
+uni-checkbox:not([disabled]) .uni-checkbox-input:hover {
+  border-color: #C5AA7B;
+}
+
+.u-arrow {
+  display: inline-block;
+  width: 20rpx;
+  height: 20rpx;
+  border-top: 1rpx solid #999;
+  border-right: 1rpx solid #999;
+}
+
+.u-arrow-up {
+  transform: rotate(-45deg);
+}
+
+.u-arrow-down {
+  transform: rotate(135deg);
+}
+
+.u-arrow-left {
+  transform: rotate(-135deg);
+}
+
+.u-arrow-right {
+  transform: rotate(45deg);
+}
+
+.uni-picker-container .uni-picker-action.uni-picker-action-confirm {
+  color: #C5AA7B;
+}
+
+.u-drawer-content {
+  border-radius: 0 !important;
+}
 </style>
 <style>
 .uni-modal__btn_primary {

+ 1 - 1
components/canvasShow/basics/group/app/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="group-list">
+  <div class="group-list" v-if="productData.products&&productData.products.length>0">
     <div class="group-warp">
       <div class="title">
         <label>

+ 5 - 3
components/canvasShow/basics/newProduct/app/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="hom-pro-list">
+  <div class="hom-pro-list" v-if="productData.length>0">
     <div class="product-swiper">
       <div class="product-swiper-box">
         <div class="product-swiper-warp" v-for="(item,index) in productData.slice(0, 3)" :key="index">
@@ -16,7 +16,8 @@
                 <img class="iconImg" v-if="item.activityType == 4" src="../../../static/images/spikeIcon.png">
                 <img class="iconImg" v-if="item.activityType == 3" src="../../../static/images/discountListIcon.png">
                 <img class="iconImg" v-if="item.activityType == 5" src="../../../static/images/discountListIcon.png">
-                <img class="iconImg" v-if="item.activityType == 8" src="../../../static/images/memberCenterIcon.png">
+                <img class="iconImg" v-if="item.activityType == 9" src="../../../static/images/memberCenterIcon.png">
+				<img class="iconImg" v-if="item.activityType == 8" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png">
                 <!-- #endif -->
                 <!-- #ifdef H5 || APP-PLUS -->
                 <image class="iconImg" v-if="item.activityType == 1" src="../../../static/images/groupBuyIcon.png"></image>
@@ -24,7 +25,8 @@
                 <image class="iconImg" v-if="item.activityType == 4" src="../../../static/images/spikeIcon.png"></image>
                 <image class="iconImg" v-if="item.activityType == 3" src="../../../static/images/discountListIcon.png"></image>
                 <image class="iconImg" v-if="item.activityType == 5" src="../../../static/images/discountListIcon.png"></image>
-                <image class="iconImg" v-if="item.activityType == 8" src="../../../static/images/memberCenterIcon.png"></image>
+                <image class="iconImg" v-if="item.activityType == 9" src="../../../static/images/memberCenterIcon.png"></image>
+				<image class="iconImg" v-if="item.activityType == 8" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png"></image>
                 <!-- #endif -->
                 <div class="price">
                   ¥ {{item.price}}

+ 1 - 1
components/canvasShow/basics/price/app/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="group-list">
+  <div class="group-list" v-if="productData&&productData.composeProducts&&productData.composeProducts.length>0">
     <div class="group-warp">
       <div class="title">
         <label>

+ 8 - 4
components/canvasShow/basics/product/app/index.vue

@@ -33,7 +33,8 @@
                 <img class="iconImg" v-if="item.activityType == 4" src="../../../static/images/spikeIcon.png">
                 <img class="iconImg" v-if="item.activityType == 3" src="../../../static/images/discountListIcon.png">
                 <img class="iconImg" v-if="item.activityType == 5" src="../../../static/images/discountListIcon.png">
-                <img class="iconImg" v-if="item.activityType == 8" src="../../../static/images/memberCenterIcon.png">
+                <img class="iconImg" v-if="item.activityType == 9" src="../../../static/images/memberCenterIcon.png">
+				<img class="iconImg" v-if="item.activityType == 8" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png">
                 <!-- #endif -->
                 <!-- #ifdef H5 || APP-PLUS -->
                 <image class="iconImg" v-if="item.activityType == 1" src="../../../static/images/groupBuyIcon.png">
@@ -41,7 +42,8 @@
                 <image class="iconImg" v-if="item.activityType == 4" src="../../../static/images/spikeIcon.png">
                 <image class="iconImg" v-if="item.activityType == 3" src="../../../static/images/discountListIcon.png">
                 <image class="iconImg" v-if="item.activityType == 5" src="../../../static/images/discountListIcon.png">
-                <image class="iconImg" v-if="item.activityType == 8" src="../../../static/images/memberCenterIcon.png">
+                <image class="iconImg" v-if="item.activityType == 9" src="../../../static/images/memberCenterIcon.png">
+				<image class="iconImg" v-if="item.activityType == 8" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png">
                 <!-- #endif -->
                 <div class="price">
                   ¥ {{item.price}}
@@ -84,7 +86,8 @@
                 <img class="iconImg" v-if="item.activityType == 4" src="../../../static/images/spikeIcon.png">
                 <img class="iconImg" v-if="item.activityType == 3" src="../../../static/images/discountListIcon.png">
                 <img class="iconImg" v-if="item.activityType == 5" src="../../../static/images/discountListIcon.png">
-                <img class="iconImg" v-if="item.activityType == 8" src="../../../static/images/memberCenterIcon.png">
+                <img class="iconImg" v-if="item.activityType == 9" src="../../../static/images/memberCenterIcon.png">
+				<img class="iconImg" v-if="item.activityType == 8" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png">
                 <!-- #endif -->
                 <!-- #ifdef H5 || APP-PLUS -->
                 <image class="iconImg" v-if="item.activityType == 1" src="../../../static/images/groupBuyIcon.png">
@@ -92,7 +95,8 @@
                 <image class="iconImg" v-if="item.activityType == 4" src="../../../static/images/spikeIcon.png">
                 <image class="iconImg" v-if="item.activityType == 3" src="../../../static/images/discountListIcon.png">
                 <image class="iconImg" v-if="item.activityType == 5" src="../../../static/images/discountListIcon.png">
-                <image class="iconImg" v-if="item.activityType == 8" src="../../../static/images/memberCenterIcon.png">
+                <image class="iconImg" v-if="item.activityType == 9" src="../../../static/images/memberCenterIcon.png">
+				<image class="iconImg" v-if="item.activityType == 8" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png">
                 <!-- #endif -->
                 <div class="price">
                   ¥ {{item.price}}

+ 227 - 137
components/canvasShow/canvasShowPage.vue

@@ -1,157 +1,247 @@
 <template>
   <div class="layout hom-layout">
-      <div class="list-group-item" v-for="(item,index) in componentsData" :key="index">
-<!--        <component :is="componentMap[terminal-1].get(item.type)" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></component>-->
-        <com-banner v-if="item.type==='banner'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-banner>
-        <com-text v-if="item.type==='text'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-text>
-        <com-image-text v-if="item.type==='imageText'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-image-text>
-        <com-brand-list v-if="item.type==='brandList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-brand-list>
-        <com-category-list v-if="item.type==='categoryList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-category-list>
-        <com-image-text-list v-if="item.type==='imageTextList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-image-text-list>
-        <com-assist-div v-if="item.type==='assistDiv'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-assist-div>
-        <com-image-text-nav v-if="item.type==='imageTextNav'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-image-text-nav>
-        <com-product v-if="item.type==='productList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-product>
-        <com-video-box v-if="item.type==='videoBox'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-video-box>
-        <com-coupon v-if="item.type==='coupon'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-coupon>
-        <com-custom v-if="item.type==='custom'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-custom>
-        <com-notice v-if="item.type==='notice'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-notice>
-        <com-vip v-if="item.type==='vip'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-vip>
-        <com-group v-if="item.type==='groupList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-group>
-        <com-discount v-if="item.type==='discountList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-discount>
-        <com-spike v-if="item.type==='spikeList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-spike>
-        <com-price v-if="item.type==='priceList'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-price>
-        <com-new-product v-if="item.type==='newProduct'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-new-product>
-        <com-shop v-if="item.type==='shop'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-shop>
-        <com-live v-if="item.type==='live'" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></com-live>
-      </div>
+    <div class="list-group-item"
+         v-for="(item,index) in componentsData"
+         :key="index">
+      <!--        <component :is="componentMap[terminal-1].get(item.type)" :componentContent="item.componentContent" :terminal="terminal" :typeId="typeId" :shopId="shopId"></component>-->
+      <com-banner v-if="item.type==='banner'"
+                  :componentContent="item.componentContent"
+                  :terminal="terminal"
+                  :typeId="typeId"
+                  :shopId="shopId"></com-banner>
+      <com-text v-if="item.type==='text'"
+                :componentContent="item.componentContent"
+                :terminal="terminal"
+                :typeId="typeId"
+                :shopId="shopId"></com-text>
+      <com-image-text v-if="item.type==='imageText'"
+                      :componentContent="item.componentContent"
+                      :terminal="terminal"
+                      :typeId="typeId"
+                      :shopId="shopId"></com-image-text>
+      <com-brand-list v-if="item.type==='brandList'"
+                      :componentContent="item.componentContent"
+                      :terminal="terminal"
+                      :typeId="typeId"
+                      :shopId="shopId"></com-brand-list>
+      <com-category-list v-if="item.type==='categoryList'"
+                         :componentContent="item.componentContent"
+                         :terminal="terminal"
+                         :typeId="typeId"
+                         :shopId="shopId"></com-category-list>
+      <com-image-text-list v-if="item.type==='imageTextList'"
+                           :componentContent="item.componentContent"
+                           :terminal="terminal"
+                           :typeId="typeId"
+                           :shopId="shopId"></com-image-text-list>
+      <com-assist-div v-if="item.type==='assistDiv'"
+                      :componentContent="item.componentContent"
+                      :terminal="terminal"
+                      :typeId="typeId"
+                      :shopId="shopId"></com-assist-div>
+      <com-image-text-nav v-if="item.type==='imageTextNav'"
+                          :componentContent="item.componentContent"
+                          :terminal="terminal"
+                          :typeId="typeId"
+                          :shopId="shopId"></com-image-text-nav>
+      <com-product v-if="item.type==='productList'"
+                   :componentContent="item.componentContent"
+                   :terminal="terminal"
+                   :typeId="typeId"
+                   :shopId="shopId"></com-product>
+      <com-video-box v-if="item.type==='videoBox'"
+                     :componentContent="item.componentContent"
+                     :terminal="terminal"
+                     :typeId="typeId"
+                     :shopId="shopId"></com-video-box>
+      <com-coupon v-if="item.type==='coupon'"
+                  :componentContent="item.componentContent"
+                  :terminal="terminal"
+                  :typeId="typeId"
+                  :shopId="shopId"></com-coupon>
+      <com-custom v-if="item.type==='custom'"
+                  :componentContent="item.componentContent"
+                  :terminal="terminal"
+                  :typeId="typeId"
+                  :shopId="shopId"></com-custom>
+      <com-notice v-if="item.type==='notice'"
+                  :componentContent="item.componentContent"
+                  :terminal="terminal"
+                  :typeId="typeId"
+                  :shopId="shopId"></com-notice>
+      <com-vip v-if="item.type==='vip'"
+               :componentContent="item.componentContent"
+               :terminal="terminal"
+               :typeId="typeId"
+               :shopId="shopId"></com-vip>
+      <com-group v-if="item.type==='groupList'"
+                 :componentContent="item.componentContent"
+                 :terminal="terminal"
+                 :typeId="typeId"
+                 :shopId="shopId"></com-group>
+      <com-discount v-if="item.type==='discountList'"
+                    :componentContent="item.componentContent"
+                    :terminal="terminal"
+                    :typeId="typeId"
+                    :shopId="shopId"></com-discount>
+      <com-spike v-if="item.type==='spikeList'"
+                 :componentContent="item.componentContent"
+                 :terminal="terminal"
+                 :typeId="typeId"
+                 :shopId="shopId"></com-spike>
+      <com-price v-if="item.type==='priceList'"
+                 :componentContent="item.componentContent"
+                 :terminal="terminal"
+                 :typeId="typeId"
+                 :shopId="shopId"></com-price>
+      <com-new-product v-if="item.type==='newProduct'"
+                       :componentContent="item.componentContent"
+                       :terminal="terminal"
+                       :typeId="typeId"
+                       :shopId="shopId"></com-new-product>
+      <com-shop v-if="item.type==='shop'"
+                :componentContent="item.componentContent"
+                :terminal="terminal"
+                :typeId="typeId"
+                :shopId="shopId"></com-shop>
+      <com-live v-if="item.type==='live'"
+                :componentContent="item.componentContent"
+                :terminal="terminal"
+                :typeId="typeId"
+                :shopId="shopId"></com-live>
+    </div>
   </div>
 </template>
 
 <script>
-  // import comComponentMap from './componentMap'
-  import comBanner from '@/components/canvasShow/basics/banner'
-  import comText from '@/components/canvasShow/basics/text'
-  import comImageText from '@/components/canvasShow/basics/imageText'
-  import comBrandList from '@/components/canvasShow/basics/brandList'
-  import comCategoryList from '@/components/canvasShow/basics/categoryList'
-  import comImageTextList from '@/components/canvasShow/basics/imageTextList'
-  import comAssistDiv from '@/components/canvasShow/basics/assistDiv'
-  import comImageTextNav from '@/components/canvasShow/basics/imageTextNav'
-  import comProduct from '@/components/canvasShow/basics/product/app/index'
-  import comVideoBox from '@/components/canvasShow/basics/video'
-  import comCoupon from '@/components/canvasShow/basics/coupon/app'
-  import comCustom from '@/components/canvasShow/basics/custom'
-  import comNotice from '@/components/canvasShow/basics/notice'
-  import comVip from '@/components/canvasShow/basics/vip/app'
-  import comGroup from '@/components/canvasShow/basics/group/app/index'
-  import comDiscount from '@/components/canvasShow/basics/discount/app'
-  import comSpike from '@/components/canvasShow/basics/spike/app'
-  import comPrice from '@/components/canvasShow/basics/price/app'
-  import comNewProduct from '@/components/canvasShow/basics/newProduct/app'
-  import comShop from '@/components/canvasShow/basics/shop'
-  import comLive from '@/components/canvasShow/basics/live/app'
-  import api from './config/api'
-  import {sendReqMixin} from './config/mixin'
-  export default {
-    name: 'canvasPage',
-    mixins: [sendReqMixin],
-    data () {
-      return {
-        // terminal: 4, // 画布设备 1 小程序,2 H5,3 App 4 电脑
-        // typeId: 3, // 画布类型 1 平台画布,2 自定义页面,3 商家店铺装修
-        // shopId: 0, // 店铺id
-        componentsData: [],
-        activeComponent: -1,
-        // componentMap: componentMap
-      }
+// import comComponentMap from './componentMap'
+import comBanner from '@/components/canvasShow/basics/banner'
+import comText from '@/components/canvasShow/basics/text'
+import comImageText from '@/components/canvasShow/basics/imageText'
+import comBrandList from '@/components/canvasShow/basics/brandList'
+import comCategoryList from '@/components/canvasShow/basics/categoryList'
+import comImageTextList from '@/components/canvasShow/basics/imageTextList'
+import comAssistDiv from '@/components/canvasShow/basics/assistDiv'
+import comImageTextNav from '@/components/canvasShow/basics/imageTextNav'
+import comProduct from '@/components/canvasShow/basics/product/app/index'
+import comVideoBox from '@/components/canvasShow/basics/video'
+import comCoupon from '@/components/canvasShow/basics/coupon/app'
+import comCustom from '@/components/canvasShow/basics/custom'
+import comNotice from '@/components/canvasShow/basics/notice'
+import comVip from '@/components/canvasShow/basics/vip/app'
+import comGroup from '@/components/canvasShow/basics/group/app/index'
+import comDiscount from '@/components/canvasShow/basics/discount/app'
+import comSpike from '@/components/canvasShow/basics/spike/app'
+import comPrice from '@/components/canvasShow/basics/price/app'
+import comNewProduct from '@/components/canvasShow/basics/newProduct/app'
+import comShop from '@/components/canvasShow/basics/shop'
+import comLive from '@/components/canvasShow/basics/live/app'
+import api from './config/api'
+import {sendReqMixin} from './config/mixin'
+
+export default {
+  name: 'canvasPage',
+  mixins: [sendReqMixin],
+  data() {
+    return {
+      // terminal: 4, // 画布设备 1 小程序,2 H5,3 App 4 电脑
+      // typeId: 3, // 画布类型 1 平台画布,2 自定义页面,3 商家店铺装修
+      // shopId: 0, // 店铺id
+      componentsData: [],
+      activeComponent: -1,
+      // componentMap: componentMap
+    }
+  },
+  components: {
+    comBanner,
+    comText,
+    comImageText,
+    comBrandList,
+    comCategoryList,
+    comImageTextList,
+    comAssistDiv,
+    comImageTextNav,
+    comProduct,
+    comVideoBox,
+    comCoupon,
+    comCustom,
+    comGroup,
+    comDiscount,
+    comSpike,
+    comPrice,
+    comNotice,
+    comVip,
+    comNewProduct,
+    comShop,
+    comLive
+  },
+  props: {
+    terminal: {
+      type: Number,
+      default: 4
     },
-    components: {
-      comBanner,
-      comText,
-      comImageText,
-      comBrandList,
-      comCategoryList,
-      comImageTextList,
-      comAssistDiv,
-      comImageTextNav,
-      comProduct,
-      comVideoBox,
-      comCoupon,
-      comCustom,
-      comGroup,
-      comDiscount,
-      comSpike,
-      comPrice,
-      comNotice,
-      comVip,
-      comNewProduct,
-      comShop,
-      comLive
+    typeId: {
+      type: Number,
+      default: 1
     },
-    props: {
-      terminal: {
-        type: Number,
-        default: 4
-      },
-      typeId: {
-        type: Number,
-        default: 1
-      },
-      shopId: {
-        type: Number,
-        default: 0
+    shopId: {
+      type: Number,
+      default: 0
+    }
+  },
+  mounted() {
+    // this.shopId = Cookies.get('cereShopId')
+    this.canvasGet()
+  },
+  methods: {
+    // 读取画布
+    canvasGet() {
+      var _this = this
+      var apiUrl = api.getCanvas + '?terminal=' + this.terminal + '&type=' + this.typeId
+      if (this.shopId) {
+        apiUrl += '&shopId=' + this.shopId
       }
-    },
-    mounted () {
-      // this.shopId = Cookies.get('cereShopId')
-      this.canvasGet()
-    },
-    methods: {
-      // 读取画布
-      canvasGet () {
-        var _this = this
-        var apiUrl = api.getCanvas + '?terminal=' + this.terminal + '&type=' + this.typeId
-        if (this.shopId) {
-          apiUrl += '&shopId=' + this.shopId
-        }
-        let params = {
-          url: apiUrl,
-          method: 'GET'
-        }
-        this.sendReq(params, (res) => {
-          if (JSON.stringify(res.data) !== '{}') {
-            _this.canvasId = res.data.canvasId
-            var componentsData = JSON.parse(res.data.json)
-            _this.componentsData = componentsData
-          } else {
-            _this.canvasId = ''
-          }
-          // console.log(JSON.parse(res.data.json))
-        })
+      let params = {
+        url: apiUrl,
+        method: 'GET'
       }
+      this.sendReq(params, (res) => {
+        if (JSON.stringify(res.data) !== '{}') {
+          _this.canvasId = res.data.canvasId
+          var componentsData = JSON.parse(res.data.json)
+          _this.componentsData = componentsData
+        } else {
+          _this.canvasId = ''
+        }
+        // console.log(JSON.parse(res.data.json))
+      })
     }
   }
+}
 </script>
 
-<style lang="scss" scoped>
-  .hom-layout{
-    background-color: #ffffff;
-    width: 100%;
-    overflow: hidden;
-  }
+<style lang="scss"
+       scoped>
+.hom-layout {
+  background-color: #ffffff;
+  width: 100%;
+  overflow: hidden;
+}
 </style>
 
 <style lang="scss">
-  .warp{
-    width: 710upx;
-    margin: 0 auto;
+.warp {
+  width: 710upx;
+  margin: 0 auto;
+  max-width: 100%;
+
+  &.terminal4 {
+    width: 1200px;
     max-width: 100%;
-    &.terminal4{
-      width: 1200px;
-      max-width: 100%;
-    }
-  }
-  .flex-box{
-    display: flex;
   }
+}
+
+.flex-box {
+  display: flex;
+}
 </style>

+ 8 - 4
components/wx/wxSendCoupon.vue

@@ -72,15 +72,19 @@
          }
         },
         mounted(){
-            console.log(this.couponList,'couponList')
+            // console.log(this.couponList,'couponList')
             let ids = []
             this.couponList.forEach(item=>{
                 if(item.cardId){
                     ids.push(item.cardId)
-                } else {
-                    this.successList.push(item)
-                }
+                } 
+				// else {
+    //                 this.successList.push(item)
+    //             }
+				// 解除app h5不能领券问题
+				this.successList.push(item)
             })
+			// console.log(this.successList,'successList')
             // #ifdef MP-WEIXIN
             if(ids && ids.length > 0){
                this.buildParam4Plug(ids)

+ 8 - 6
config/api.js

@@ -1,14 +1,15 @@
-// const DOMAIN_PREFIX = 'http://itxzz.top'
-const DOMAIN_PREFIX = 'https://ceres.zkthink.com'
+// const DOMAIN_PREFIX = 'http://127.0.0.1:9007'
+const DOMAIN_PREFIX = 'https://ceres.zkthink.com/api'
+
 // https://ceresdev.zkthink.com
 // #ifndef H5
-const WX_API_BASE = DOMAIN_PREFIX + '/api' // app
-// const WX_API_BASE = DOMAIN_PREFIX  // app
+const WX_API_BASE = DOMAIN_PREFIX // app
 // const WX_API_BASE = 'http://3j073r3905.qicp.vip:29544'
 // #endif
 
 // #ifdef H5
-const WX_API_BASE = '/api' // h5
+// const WX_API_BASE = '/api' // h5
+const WX_API_BASE = DOMAIN_PREFIX // app
 const TERMINAL = 2
 // #endif
 
@@ -34,6 +35,7 @@ module.exports = {
 	UpdateWxPhone: WX_API_BASE + '/app/updateWxPhone', //  获取微信手机号绑定
 	UpdateAliPhone: WX_API_BASE + '/app/updateAliPhone', //	获取支付宝小程序手机号绑定
 	WxAppLogin: WX_API_BASE + '/app/wxAppLogin', // APP微信登录
+	delUser: WX_API_BASE + '/user/delUser/',//账户注销
 
 
 	// 查询直播间列表
@@ -111,7 +113,7 @@ module.exports = {
 	ShippingTrace: WX_API_BASE + '/order/getDilevery', //  物流信息查询
 	payOrder: WX_API_BASE + '/order/pay', //  支付成功业务处理接口
 	gotoPay: WX_API_BASE + '/order/gotoPay', //  小程序支付
-	paySuccess: WX_API_BASE + 'order/paySuccess', //  小程序支付成功
+	paySuccess: WX_API_BASE + '/order/paySuccess', //  小程序支付成功
 	gotoAppPay: WX_API_BASE + '/order/gotoAppPay', //  APP立即支付
 	gotoH5Pay: WX_API_BASE + '/order/gotoH5Pay', //  H5支付
 	ConfirmReceive: WX_API_BASE + '/order/confirm', //  确认收货

+ 8 - 4
manifest.json

@@ -1,6 +1,6 @@
 {
     "name" : "cereshop",
-    "appid" : "__UNI__B79F1D2",
+    "appid" : "__UNI__ECAA86F",
     "description" : "cereshop",
     "versionName" : "1.6.0",
     "versionCode" : 160,
@@ -18,7 +18,9 @@
         /* 5+App特有相关 */
         "modules" : {
             "Webview-x5" : {},
-            "VideoPlayer" : {}
+            "VideoPlayer" : {},
+            "Payment" : {},
+            "Share" : {}
         },
         /* 模块配置 */
         "distribute" : {
@@ -36,6 +38,7 @@
                     "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                     "<uses-permission android:name=\"android.permission.INTERNET\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
                     "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
                     "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
@@ -55,7 +58,7 @@
                 "ad" : {},
                 "payment" : {
                     "weixin" : {
-                        "__platform__" : [ "android" ],
+                        "__platform__" : [ "ios", "android" ],
                         "appid" : "wxec665c74647095aa",
                         "UniversalLinks" : ""
                     }
@@ -70,7 +73,8 @@
                         "appid" : "wxec665c74647095aa",
                         "UniversalLinks" : ""
                     }
-                }
+                },
+                "push" : {}
             },
             "splashscreen" : {
                 "androidStyle" : "common",

+ 15 - 0
pages.json

@@ -597,6 +597,21 @@
 						"enablePullDownRefresh": false
 					}
 
+				},
+				{
+					"path": "userModule/unsubscribe",
+					"style": {
+						"navigationBarTitleText": "账户注销",
+						"navigationBarBackgroundColor": "#333333",
+						"backgroundColor": "#333333",
+						"navigationBarTextStyle": "white"
+					}
+				},
+				{
+					"path": "userModule/unsubscribeCode",
+					"style": {
+						"navigationBarTitleText": "注销账户手机认证"
+					}
 				}
 			]
 		}

File diff suppressed because it is too large
+ 631 - 530
pages/tabbar/cart/index.vue


+ 229 - 171
pages/tabbar/index/index.vue

@@ -1,73 +1,99 @@
 <template>
 	<div>
-    <!-- #ifdef MP-WEIXIN -->
-    <view class="header weiXinBox" :style="{'padding-top': topHeight + 'px'}">
-      <view class="topBox" :style="{'height': height + 'px'}">
-        <image class="logo" src="https://ceres.zkthink.com/static/assets/img/logo.png" mode="widthFix"></image>
-      </view>
-    </view>
-    <view class="wxBtnBg" :style="{'padding-top': (topHeight + height + 10) + 'px'}">
-      <view class="weiXinBoxBtn" @click="searchPro">
-        <image class="search-icon" src="https://ceres.zkthink.com/static/images/searchImg.png" mode="widthFix"></image>
-        <text>请输入您想要的宝贝</text>
-      </view>
-    </view>
-    <!-- #endif -->
-    <!-- #ifdef H5 || APP-PLUS -->
-    <view class="header">
-      <view class="topBox topWap">
-        <image class="logo" src="https://ceres.zkthink.com/static/assets/img/logo.png" mode="widthFix"></image>
-        <view class="search-btn" @click="searchPro">
-          <image class="search-icon" src="https://ceres.zkthink.com/static/img/search.png" mode="widthFix"></image>
-        </view>
-      </view>
-    </view>
-    <!-- #endif -->
-    <category-list @tabChange='tabChange'></category-list>
+		<!-- #ifdef MP-WEIXIN -->
+		<view class="header weiXinBox" :style="{'padding-top': topHeight + 'px'}">
+			<view class="topBox" :style="{'height': height + 'px'}">
+				<image class="logo" src="https://ceres.zkthink.com/static/assets/img/logo.png" mode="widthFix"></image>
+			</view>
+		</view>
+		<view class="wxBtnBg" :style="{'padding-top': (topHeight + height + 10) + 'px'}">
+			<view class="weiXinBoxBtn" @click="searchPro">
+				<image class="search-icon" src="https://ceres.zkthink.com/static/images/searchImg.png" mode="widthFix">
+				</image>
+				<text>请输入您想要的宝贝</text>
+			</view>
+		</view>
+		<!-- #endif -->
+		<!-- #ifdef H5 || APP-PLUS -->
+		<view class="header">
+			<view class="topBox topWap">
+				<image class="logo" src="https://ceres.zkthink.com/static/assets/img/logo.png" mode="widthFix"></image>
+				<view class="search-btn" @click="searchPro">
+					<image class="search-icon" src="https://ceres.zkthink.com/static/img/search.png" mode="widthFix">
+					</image>
+				</view>
+			</view>
+		</view>
+		<!-- #endif -->
+		<category-list @tabChange='tabChange'></category-list>
 		<canvas-page v-if="activeTab==0" :terminal="terminal" :typeId="1"></canvas-page>
 		<category-show v-else :categoryid="categoryid"></category-show>
-    <ad-window ref="adWindow" :triggerCondition="1"></ad-window>
+		<ad-window ref="adWindow" :triggerCondition="1"></ad-window>
 		<view class="reachBottom" v-if="topLeft > 400">
-			<image class="reach-icon" src="https://ceres.zkthink.com/static/img/reachBottom.png" mode="widthFix"></image>
+			<image class="reach-icon" src="https://ceres.zkthink.com/static/img/reachBottom.png" mode="widthFix">
+			</image>
 			<text class="reach-text">这里到底了哦~~</text>
 		</view>
+		<tui-modal :show="privacyShow" :custom="true" :fadein="true">
+			<view class="Put-box1">
+				<view class="text-align fs34 fs-bold">
+					协议与隐私政策
+				</view>
+				<p class="mar-top-20">欢迎来到cereshop!我们根据最新的法律、法规、监管政策要求,更新了cereshop隐私政策。</p>
+				<view class="flex-display flex-sp-between">
+					<view class="btn submit" @click="privacyShow = false">
+						同意
+					</view>
+				</view>
+			</view>
+		</tui-modal>
 	</div>
 </template>
 
 <script>
+	import tuiModal from "@/components/modal/modal";
 	import AdWindow from "@/components/adWindow";
-  const API = require('../../../config/api')
+	const API = require('../../../config/api')
 	import CategoryList from "@/components/basics/categoryList.vue"
 	import CategoryShow from "@/components/basics/categoryShow.vue"
 	import canvasPage from '@/components/canvasShow/canvasShowPage.vue'
 
 	export default {
 		components: {
-      AdWindow,
+			AdWindow,
 			CategoryList,
 			CategoryShow,
 			canvasPage,
+			tuiModal
 		},
 		data() {
 			return {
 				terminal: API.terminal,
 				activeTab: 0,
 				categoryid: 0,
-        topHeight: 0,
-        height: 0,
-				topLeft: 0
+				topHeight: 0,
+				height: 0,
+				topLeft: 0,
+				privacyShow:false
+			}
+		},
+		onLoad() {
+			if (!uni.getStorageSync('storage_key')) {
+				// #ifdef APP-PLUS
+				this.privacyShow = true
+				// #endif
 			}
 		},
 		onShow() {
-      // #ifdef MP-WEIXIN || MP-BAIDU || MP-TOUTIAO || MP-QQ
-      let menuButtonInfo = uni.getMenuButtonBoundingClientRect()
-      this.topHeight = menuButtonInfo.top + 10
-      this.height = menuButtonInfo.height
-      // #endif
-      this.$nextTick(() => {
-        this.$refs.adWindow.getAd()
-      })
-    },
+			// #ifdef MP-WEIXIN || MP-BAIDU || MP-TOUTIAO || MP-QQ
+			let menuButtonInfo = uni.getMenuButtonBoundingClientRect()
+			this.topHeight = menuButtonInfo.top + 10
+			this.height = menuButtonInfo.height
+			// #endif
+			this.$nextTick(() => {
+				this.$refs.adWindow.getAd()
+			})
+		},
 		onPageScroll(e) {
 			this.topLeft = e.scrollTop
 		},
@@ -87,159 +113,191 @@
 </script>
 
 <style lang="scss" scoped>
-.header {
-	.toLive{
-		height: 40px;
-		color: #FFF;
-		background-color: #333;
-	}
-	.topBox {
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		width: 100%;
-	}
-	.logo {
-		width: 280rpx;
-		height: 42rpx;
-		margin-top: -40rpx;
-		// margin-left: 30rpx;
-	}
+	.header {
+		.toLive {
+			height: 40px;
+			color: #FFF;
+			background-color: #333;
+		}
 
-	.search-btn {
-		height: 66rpx;
-		background: rgba(255, 255, 255, 1);
-		border-radius: 33rpx;
-		display: flex;
-		flex-direction: row;
-		align-items: center;
-		margin-right: 30rpx;
+		.topBox {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			width: 100%;
+		}
+
+		.logo {
+			width: 280rpx;
+			height: 42rpx;
+			margin-top: -40rpx;
+			// margin-left: 30rpx;
+		}
+
+		.search-btn {
+			height: 66rpx;
+			background: rgba(255, 255, 255, 1);
+			border-radius: 33rpx;
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			margin-right: 30rpx;
+
+			.search-icon {
+				width: 60rpx;
+				height: 60rpx;
+				// margin-left: 33rpx;
+			}
 
-		.search-icon {
-			width: 60rpx;
-			height: 60rpx;
-			// margin-left: 33rpx;
+			.search-word {
+				font-size: 26rpx;
+				font-weight: 400;
+				color: rgba(153, 153, 153, 1);
+				margin-left: 10rpx;
+			}
+		}
+
+		.tabs-nav-warp {
+			margin-top: 20rpx;
+			padding: 0 30rpx;
 		}
 
-		.search-word {
-			font-size: 26rpx;
-			font-weight: 400;
-			color: rgba(153, 153, 153, 1);
-			margin-left: 10rpx;
+		.tabs-nav {
+			.ul {
+				display: flex;
+
+				.li {
+					flex: 1 0 auto;
+					margin-left: 36rpx;
+					font-size: 30rpx;
+					color: #999999;
+					position: relative;
+					padding-bottom: 18rpx;
+
+					&:first-child {
+						margin-left: 0;
+					}
+
+					&.on {
+						&:after {
+							content: '';
+							width: 100%;
+							height: 4rpx;
+							background: #C5AA7B;
+							position: absolute;
+							left: 0;
+							bottom: 0;
+						}
+
+						font-weight:bold;
+					}
+				}
+			}
 		}
 	}
 
-	.tabs-nav-warp {
-		margin-top: 20rpx;
-		padding: 0 30rpx;
+	.weiXinBox {
+		width: 100%;
+		position: fixed;
+		background: #FFFFFF;
+		z-index: 99;
 	}
 
-	.tabs-nav {
-		.ul {
+	.wxBtnBg {
+		padding: 0 20rpx;
+
+		.weiXinBoxBtn {
 			display: flex;
+			align-items: center;
+			padding: 10rpx 0 10rpx 15rpx;
+			width: 100%;
+			background: #F3F4F5;
+			opacity: 1;
 
-			.li {
-				flex: 1 0 auto;
-				margin-left: 36rpx;
-				font-size: 30rpx;
+			.search-icon {
+				width: 50rpx;
+				height: 50rpx;
+				margin-right: 20rpx;
+			}
+
+			text {
 				color: #999999;
-				position: relative;
-				padding-bottom: 18rpx;
+			}
+		}
+	}
 
-				&:first-child {
-					margin-left: 0;
-				}
+	.terminal1 {
+		.header {
+			.topBox {
+				// justify-content: left;
 
-				&.on {
-					&:after {
-						content: '';
-						width: 100%;
-						height: 4rpx;
-						background: #C5AA7B;
-						position: absolute;
-						left: 0;
-						bottom: 0;
+				.search-btn {
+					.search-icon {
+						margin-left: 0rpx;
 					}
-
-					font-weight:bold;
 				}
 			}
 		}
 	}
-}
-.weiXinBox {
-  width: 100%;
-  position: fixed;
-  background: #FFFFFF;
-  z-index: 99;
-}
-.wxBtnBg {
-  padding: 0 20rpx;
-  .weiXinBoxBtn {
-    display: flex;
-    align-items: center;
-    padding: 10rpx 0 10rpx 15rpx;
-    width: 100%;
-    background: #F3F4F5;
-    opacity: 1;
-    .search-icon {
-      width: 50rpx;
-      height: 50rpx;
-      margin-right: 20rpx;
-    }
-    text {
-      color: #999999;
-    }
-  }
-}
-.terminal1 {
-	.header {
-		.topBox {
-			// justify-content: left;
 
-			.search-btn {
-				.search-icon {
-					margin-left: 0rpx;
-				}
-			}
+	.topTitle {
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		height: 100rpx;
+		width: 100%;
+
+		.topText {
+			text-align: center;
+			color: #000000;
+			font-size: 38rpx;
+			font-weight: bold;
+		}
+	}
+
+	.topWap {
+		padding-top: 60rpx;
+
+		.logo {
+			margin-top: 0 !important;
 		}
 	}
-}
-.topTitle {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  height: 100rpx;
-  width: 100%;
-  .topText {
-    text-align: center;
-    color: #000000;
-    font-size: 38rpx;
-    font-weight: bold;
-  }
-}
-.topWap {
-  padding-top: 60rpx;
-  .logo {
-    margin-top: 0 !important;
-  }
-}
-.terminal2 {}
-
-.terminal3 {}
-// 触底样式
-.reachBottom{
-	margin-top: 30rpx;
-	display: flex;
-	flex-direction: column;
-	align-items: center;
-	.reach-icon{
-		width: 150rpx;
-		height: 150rpx;
+
+	.terminal2 {}
+
+	.terminal3 {}
+
+	// 触底样式
+	.reachBottom {
+		margin-top: 30rpx;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+
+		.reach-icon {
+			width: 150rpx;
+			height: 150rpx;
+		}
+
+		.reach-text {
+			margin: 20rpx 0;
+			color: #CCCCCC;
+		}
 	}
-	.reach-text{
-		margin: 20rpx 0;
-		color: #CCCCCC;
+	.Put-box1 {
+	  .btn {
+	    text-align: center;
+	    margin-top: 40rpx;
+	    border: 1px solid #333333;
+	    height: 80upx;
+	    line-height: 80upx;
+	    width: 100%;
+	    color: #333333;
+	  }
+	
+	  .submit {
+	    background-color: #333333;
+	    color: #FFEBC4;
+	  }
 	}
-}
 </style>

+ 41 - 18
pages_category_page1/discount/spikeList.vue

@@ -1,22 +1,30 @@
 <template>
 	<view class="spikeListBox">
-		<view class="spikeBg">
-			<image src="https://ceres.zkthink.com/static/images/spikelLogo.png"></image>
-		</view>
-		<view class="tabs-nav-warp spikeNav">
-			<scroll-view class="tabs-nav" scroll-x="true">
-				<view class="ul">
-					<view class="li" v-for="(item, index) in querySessionData" :key="index"
-						:class="{active: index === active}" @click="changeTit(index, item)">
-						<view class="timeItem">
-							<view class="date" :class="{endCls: currentTime > item.endTime}">{{item.startTime}}</view>
-							<view class="state fs24" v-if="currentTime > item.timestamp">抢购中</view>
-							<view class="state" v-if="currentTime < item.timestamp">即将开始</view>
-							<view class="state" v-if="currentTime > item.endTime">已结束</view>
+		<view v-if="!shopSeckillId">
+			<view class="spikeBg">
+				<image src="https://ceres.zkthink.com/static/images/spikelLogo.png"></image>
+			</view>
+			<view class="tabs-nav-warp spikeNav">
+				<scroll-view class="tabs-nav" scroll-x="true">
+					<view class="ul">
+						<view class="li" v-for="(item, index) in querySessionData" :key="index"
+							:class="{active: index === active}" @click="changeTit(index, item)">
+							<view class="timeItem">
+								<view class="date" :class="{endCls: currentTime > item.endTime}">{{item.startTime}}</view>
+								<view class="state fs24" v-if="currentTime > item.timestamp">抢购中</view>
+								<view class="state" v-if="currentTime < item.timestamp">即将开始</view>
+								<view class="state" v-if="currentTime > item.endTime">已结束</view>
+							</view>
 						</view>
 					</view>
-				</view>
-			</scroll-view>
+				</scroll-view>
+			</view>
+		</view>
+		<view v-else class="shopStopTime">
+			<label v-if="currentTime > timestamp">距离结束:</label>
+			<label v-else>距离开始:</label>
+			<u-count-down :timestamp="shopEndTime" fontSize="24rpx" separatorColor="#C83732"
+			separatorSize="24rpx" bgColor="#C83732" color="#ffffff" height="200rpx"></u-count-down>
 		</view>
 		<view class="spikeList mar-top-20">
 			<view class="listItem" v-for="(item,index) in spikeLikeList" :key="index">
@@ -72,7 +80,11 @@
 <script>
 	const NET = require('../../utils/request')
 	const API = require('../../config/api')
+	import UCountDown from "../../uview-ui/components/u-count-down/u-count-down";
 	export default {
+		components:{
+			UCountDown
+		},
 		data() {
 			return {
 				spikeLikeList: [],
@@ -103,7 +115,9 @@
 				currentTime: '',
 				active: 0,
 				timestamp: null,
-				endTime: null
+				endTime: null,
+				shopEndTime:null,
+				
 			}
 		},
 		onLoad(options) {
@@ -122,7 +136,11 @@
 			// this.getQuerySession()
 		},
 		onShow() {
-			this.getQuerySession()
+			this.page = 1,
+			this.pageSize= 10,
+			this.querySessionData = []
+			this.spikeLikeList = []
+			this.getQuerySession()			
 		},
 		tabChange(key, value) {
 			this.activeTab = key
@@ -269,11 +287,13 @@
 				param = {
 					page: this.page,
 					pageSize: this.pageSize,
+					shopId: this.shopId,
 					shopSeckillId: this.shopSeckillId,
 				}
 				NET.request(API.getShopSeckillIndex, param, 'GET').then(res => {
 					uni.hideLoading()
 					this.spikeLikeData = res.data
+					this.shopEndTime = res.data.time
 					if (res.data.page.list.length === 0) {
 						this.loadingType = 1
 						this.page = this.page
@@ -303,7 +323,10 @@
 
 	.spikeListBox {
 		padding: 20rpx;
-
+        .shopStopTime{
+			text-align: center;
+			color: #FFFFFF;
+		}
 		.spikeBg {
 			text-align: center;
 			margin: 50rpx auto;

+ 2 - 1
pages_category_page1/goodsModule/canvasGoods.vue

@@ -78,7 +78,8 @@
                 <image class="iconImg" v-if="item.activityType == 4" src="https://ceres.zkthink.com/static/images/spikeIcon.png"></image>
                 <image class="iconImg" v-if="item.activityType == 3" src="https://ceres.zkthink.com/static/images/discountListIcon.png"></image>
                 <image class="iconImg" v-if="item.activityType == 5" src="https://ceres.zkthink.com/static/images/discountListIcon.png"></image>
-                <image class="iconImg" v-if="item.activityType == 8" src="https://ceres.zkthink.com/static/images/memberCenterIcon.png"></image>
+				<image class="iconImg" v-if="item.activityType == 9" src="https://ceres.zkthink.com/static/images/memberCenterIcon.png"></image>
+                <image class="iconImg" v-if="item.activityType == 8" src="https://zk-cereshop.oss-cn-shenzhen.aliyuncs.com/zkthink/2022-02-15/d0d8d96f28904167b271de4ae924d1a8_sceneMarketing.png"></image>
                 <view class="font-color-C83732 flex-row-plus">
                   <b>¥</b>
                   <label class="fs28">{{item.price}}</label>

File diff suppressed because it is too large
+ 1095 - 1061
pages_category_page1/goodsModule/goodsDetails.vue


+ 1 - 1
pages_category_page1/orderModule/addLogistics.vue

@@ -130,7 +130,7 @@
               icon:'success'
             })
 						uni.navigateTo({
-							url:'afterSale'
+							url:'../../pages_category_page2/orderModule/afterSale'
 						})
 					}
 				}).catch(res => {

+ 48 - 14
pages_category_page1/orderModule/afterSaleApply.vue

@@ -43,7 +43,7 @@
             </checkbox-group>
           </view>
           <view class="selectRight flex-items">
-            <view class="selectNum">{{number}}件商品</view>
+            <view class="selectNum">{{number || 0}}件商品</view>
             <view class="totalPrice">合计:<text>¥{{total.toFixed(2)}}</text></view>
           </view>
         </view>
@@ -72,16 +72,17 @@ export default {
       },
       number: null,
       total: 0,
-      distribution: null
+      distribution: null,
+	  isAllSelect:null,
     }
   },
   onLoad(item) {
     this.item = JSON.parse(item.item)
     this.distribution = this.item.skus[0].distribution
-    this.item.skus.forEach((item) => {
-      this.number = this.number + item.number
-      this.total = this.total + item.total
-    })
+    // this.item.skus.forEach((item) => {
+    //   this.number = this.number + item.number
+    //   this.total = this.total + item.total
+    // })
   },
   methods: {
     // 申请退款
@@ -96,20 +97,29 @@ export default {
       }else{
         uni.setStorageSync('afterSaleApplyRefund',this.xuanzlist)
         uni.navigateTo({
-          url: 'afterSaleApplyRefund?orderId='+this.item.orderId
+          url: 'afterSaleApplyRefund?orderId='+this.item.orderId+'&isAllSelect='+this.isAllSelect
         })
       }
     },
     // 全选
     changeAll (e) {
+		console.log(e,'dhjishjkfdjhdfsjhkds')
       if(e.detail.value.length == 0) {
         this.item.skus.map(item => this.$set(item, 'checked', false));
         this.$set(this.allCheck, 'checked', false);
         this.xuanzlist = []
+		this.isAllSelect = 0
       }else{
         this.item.skus.map(item => this.$set(item, 'checked', true));
         this.$set(this.allCheck, 'checked', true);
+		this.isAllSelect = 1
         this.xuanzlist = this.item.skus.filter(item => item.checked == true)
+		this.number = 0
+		this.total = 0
+		this.item.skus.forEach((item) => {
+		  this.number = this.number + item.number
+		  this.total = this.total + item.total
+		})
       }
     },
     // 申请退货
@@ -122,21 +132,45 @@ export default {
         })
       }else{
         uni.navigateTo({
-          url: 'afterSaleApplyRetund?list=' + encodeURIComponent(JSON.stringify(this.xuanzlist))+'&orderId='+this.item.orderId
+          url: 'afterSaleApplyRetund?list=' + encodeURIComponent(JSON.stringify(this.xuanzlist))+'&orderId='+this.item.orderId+'&isAllSelect='+this.isAllSelect
         })
       }
     },
     checkboxGroupChange(e){
       // console.log(e, 'fdsfdsfsdf')
     },
+	
     checkboxChange(e) {
-      console.log(e, 'fdsfdsfsdf')
+	  // 动态设置商品件数和总计
+	  if(e.checked){
+		  this.number = this.number + e.number
+		  this.total = this.total + e.total
+	  }else{
+		  this.number = this.number - e.number
+		  this.total = this.total - e.total
+	  }
+	  // 筛选勾选的
       this.xuanzlist = this.item.skus.filter(item => item.checked == true)
-      if(this.xuanzlist.findIndex(item=>item.checked===true)==-1){
-        this.$set(this.allCheck, 'checked', false);
-      } else {
-        this.$set(this.allCheck, 'checked', true);
-      }
+	  
+	  // 是否为全选
+	  if(this.item.skus.length == this.xuanzlist.length){
+		  this.isAllSelect = 1
+		  this.$set(this.allCheck, 'checked', true);
+	  }else{
+		  this.isAllSelect =  0
+		  this.$set(this.allCheck, 'checked', false);
+	  }
+	  console.log(this.isAllSelect,'this.isAllSelect')
+	  
+  //     if(this.xuanzlist.findIndex(item=>item.checked===true)==-1){
+		//   console.log(this.allCheck,'this.allCheck')
+		//   console.log(this.xuanzlist,'this.xuanzlist')
+  //       this.$set(this.allCheck, 'checked', false);
+  //     } else {
+		//   console.log(this.allCheck,'this.allCheck')
+  //       this.$set(this.allCheck, 'checked', true);
+		// console.log(this.xuanzlist,'this.xuanzlist')
+  //     }
     }
   }
 }

+ 8 - 4
pages_category_page1/orderModule/afterSaleApplyRefund.vue

@@ -55,7 +55,7 @@
       <view class="afterSale-select-box mt20">
         <view class="item">
           <view class="l">退款金额:
-            <text class="order-status">¥ {{sellPriceitem}}</text>
+            <text class="order-status">¥ {{sellPriceitem.toFixed(2) }}</text>
           </view>
         </view>
         <view class="item item-start">
@@ -182,7 +182,8 @@ export default {
       orderId:0,
       isIphone: false,
       commentImgs: '',
-      afterType: 1
+      afterType: 1,
+	  isAllSelect:0,
     }
   },
   onReady() {
@@ -190,6 +191,7 @@ export default {
     this.fileList = this.$refs.uUpload.lists
   },
   onLoad(options) {
+	  console.log(options,'options')
     if (uni.getStorageSync('applyItem')) {
       this.afterRefund = uni.getStorageSync('applyItem')
       this.list.push(this.afterRefund)
@@ -198,13 +200,14 @@ export default {
       console.log(this.list, 'list')
     }
     this.orderId = parseInt(options.orderId)
+	this.isAllSelect = options.isAllSelect
     const res = uni.getStorageSync('storage_key');
     this.headerToken.Authorization = res.token
     console.log(this.list, 'list')
     this.list.forEach(el => {
       this.sellPriceitem = this.sellPriceitem + (el.number*el.price) + el.logisticsPrice
     })
-    this.sellPriceitem = this.sellPriceitem.toFixed(2)
+    // this.sellPriceitem = options.sellPriceitem
     // this.sellPriceitem = options.sellPriceitem
     this.getReasonEnums()
     uni.removeStorageSync('applyItem')
@@ -265,7 +268,8 @@ export default {
           returnReason:this.liyoutext,
           explain:this.ReturnMoneyQuery.returnDesc,
           image:this.commentImgs,
-          skus:skusobjdata
+          skus:skusobjdata,
+		  isAllSelect: this.isAllSelect
         }, 'POST').then(res => {
           uni.hideLoading()
           uni.showToast({

+ 18 - 15
pages_category_page1/orderModule/afterSaleApplyRetund.vue

@@ -45,7 +45,7 @@
       <view class="afterSale-select-box mt20">
         <view class="item">
           <view class="l">退款金额:
-            <text class="order-status">¥ {{sellPriceitem}}</text>
+            <text class="order-status">¥ {{sellPriceitem.toFixed(2)}}</text>
           </view>
         </view>
         <view class="item item-start">
@@ -154,6 +154,7 @@ export default {
       retundlist:[],
       orderId:0,
       isIphone: false,
+	  isAllSelect: 0,
     }
   },
   onReady() {
@@ -162,8 +163,10 @@ export default {
     this.fileList = this.$refs.uUpload.lists
   },
   onLoad(option) {
+	  console.log(option,'option')
     this.retundlist = JSON.parse(decodeURIComponent(option.list))
     this.orderId = option.orderId
+	this.isAllSelect = option.isAllSelect
     // console.log(this.retundlist, 'retundlist')
     this.retundlist.forEach(el =>{
       this.sellPriceitem = this.sellPriceitem + el.number*el.price
@@ -187,13 +190,13 @@ export default {
       }).catch(res => {})
     },
     ReturnMoney() {
-      if (this.ReturnMoneyQuery.goodsState == '') {
+      if (this.ReturnMoneyQuery.goodsState === '') {
         uni.showToast({
           title: '请选择货物状态!',
           duration: 2000,
           icon: 'none'
         });
-      } else if (this.liyoutext == '') {
+      } else if (this.liyoutext === '') {
         uni.showToast({
           title: '请选择退货原因!',
           duration: 2000,
@@ -205,28 +208,29 @@ export default {
           title: '正在提交...',
         })
         let skusobjdata = []
-        let skusobj = {}
-        for(let i=0;i<this.retundlist.length;i++){
-          skusobj["skuId"] = this.retundlist[i].skuId
-          skusobj["number"] = this.retundlist[i].number
-          skusobjdata.push(skusobj)
-        }
+		this.retundlist.forEach((i) => {
+			let skusobj = {}
+			skusobj["skuId"] = i.skuId
+			skusobj["number"] = i.number
+			skusobjdata.push(skusobj)
+		})
         NET.request(API.ApplyReturnMoney, {
           orderId:this.orderId,
           afterType:2,
           goodsState:this.ReturnMoneyQuery.goodsState,
           price: this.sellPriceitem,
-          returnReason:this.liyoutext,
-          explain:this.ReturnMoneyQuery.returnDesc,
-          image:this.commentImgs,
-          skus:skusobjdata
+          returnReason: this.liyoutext,
+          explain: this.ReturnMoneyQuery.returnDesc,
+          image: this.commentImgs,
+          skus: skusobjdata,
+		  isAllSelect: this.isAllSelect
         }, 'POST').then(res => {
           uni.hideLoading()
           uni.showToast({
             title: '提交成功'
           })
           uni.navigateTo({
-            url: 'afterSale'
+            url: '../../pages_category_page2/orderModule/afterSale'
           })
         }).catch(res => {
           uni.showToast({
@@ -237,7 +241,6 @@ export default {
           uni.hideLoading()
         })
       }
-
     },
     // 理由
     returnReasonTap(item,index){

+ 8 - 7
pages_category_page1/orderModule/index.vue

@@ -481,6 +481,12 @@
 				// #ifdef MP-WEIXIN
 				let that = this
 				NET.request(API.gotoPay, submitResult, 'POST').then(res => {
+					console.log(item,'item订单提交9999')
+					console.log(res,'res订单提交9999')
+					let param = {
+						orderId: item.orderId,
+						collageId: item.collageId
+					}
 					uni.requestPayment({
 						provider: 'wxpay',
 						timeStamp: res.data.timeStamp,
@@ -489,13 +495,8 @@
 						signType: res.data.signType,
 						paySign: res.data.paySign,
 						success: function(payRes) {
-							console.log(that.orderId,'this.orderId')
-							console.log(item.collageId,'item.collageId')
-							if(item.collageId){
-								let param = {
-								  orderId:that.orderId,
-								  collageId:item.collageId
-								}
+							// 拼团支付成功回调
+							if(param.collageId){
 								NET.request(API.paySuccess, param, 'POST').then(res => {
 									console.log(res,'支付成功')					 
 								})

+ 16 - 13
pages_category_page1/orderModule/orderConfirm.vue

@@ -429,6 +429,7 @@ export default {
       NET.request(_url, _data, 'POST').then(res => {
         uni.hideLoading()
         this.settlement = res.data
+        console.log(this.settlement)
         this.couponsList = res.data.coupons
         this.huabeiChargeType = res.data.huabeiChargeType
         if (this.huabeiChargeType === 2) {
@@ -481,7 +482,7 @@ export default {
         uni.removeStorageSync('receiveItem')
         this.usableListLength = res.data.coupons.length
         this.getTotal()
-        
+
       }).catch(res => {
         uni.hideLoading()
       })
@@ -670,6 +671,8 @@ export default {
         shopSumPrice += parseFloat(this.settlement.shops[i].totalNum)
         this.totalCount += this.settlement.shops[i].number
       }
+      console.log(this.settlement.shops,this.totalPrice )
+
       if (this.checkedPlatformCoupon) {
         if (this.checkedPlatformCoupon.couponType === 1 && this.totalPrice - this.checkedPlatformCoupon.reduceMoney > 0) { // 满减
           this.totalPrice = shopSumPrice - this.checkedPlatformCoupon.reduceMoney
@@ -888,7 +891,7 @@ export default {
           icon: 'none'
         })
       } else {
-		 
+
 	    if(this.oneClickSubmit){
 			this.oneClickSubmit = false
 			if (this.userAddressInfo.receiveName) {
@@ -980,7 +983,7 @@ export default {
 			  // #endif
 
 			  uni.hideLoading()
-			  NET.request(API.PlaceOrder, data, 'POST').then(res => {	  
+			  NET.request(API.PlaceOrder, data, 'POST').then(res => {
 				if(this.type == 2){
 					let carSkusData = data.shops
 					let skusArr = []
@@ -1021,7 +1024,7 @@ export default {
 					  url: '../orderModule/index?type=1'
 					})
 				})
-				
+
 			   }
 				// #endif
 				// #ifdef MP-ALIPAY
@@ -1032,7 +1035,11 @@ export default {
 
 				// #ifdef MP-WEIXIN
 				NET.request(API.gotoPay, submitResult, 'POST').then(res => {
-				  console.dir(res)
+				  console.dir(res,'API.gotoPay')
+				  let param = {
+				    orderId:submitResult.orderId,
+				    collageId:submitResult.collageId
+				  }
 				  uni.requestPayment({
 					provider: 'wxpay',
 					timeStamp: res.data.timeStamp,
@@ -1040,16 +1047,12 @@ export default {
 					package: res.data.package,
 					signType: res.data.signType,
 					paySign: res.data.paySign,
-					// success: function(payRes) {
 					success: function(payRes) {
-					  if(that.collageId){
-						  console.log(that.collageId,'that.collageId99999')
-					  	let param = {
-					  	  orderId:that.orderId,
-					  	  collageId:that.collageId
-					  	}
+						// 拼团微信支付成功回调
+					  if(param.collageId){
+						console.log(param,' param999999')
 					  	NET.request(API.paySuccess, param, 'POST').then(res => {
-					  		console.log(res,'支付成功')					 
+					  		console.log(res,'支付成功')
 					  	})
 					  }
 					  uni.showToast({

+ 12 - 7
pages_category_page1/orderModule/orderDetails.vue

@@ -10,8 +10,8 @@
 						<!-- <text class="label">剩{{hou}}小时{{min}}分{{sec}}秒自动关闭</text> -->
 						<view style="color: #FFFFFF; margin-top: 20rpx;">
 							<text>剩 </text>
-							<u-count-down :timestamp="remainingTime" fontSize="24rpx" :separator="zh" separatorColor="#FFFFFF"
-							separatorSize="24rpx"></u-count-down>
+							<u-count-down :timestamp="remainingTime" fontSize="24rpx" :separator="zh"
+								separatorColor="#FFFFFF" separatorSize="24rpx"></u-count-down>
 							<text>自动关闭</text>
 						</view>
 					</view>
@@ -69,8 +69,8 @@
 						<!-- <text class="label">剩余时间{{hou}}小时{{min}}分{{sec}}秒</text> -->
 						<view style="color: #FFFFFF; margin-top: 20rpx;">
 							<text>剩余时间</text>
-							<u-count-down :timestamp="remainingTime" fontSize="24rpx" :separator="zh" separatorColor="#FFFFFF"
-							separatorSize="24rpx"></u-count-down>
+							<u-count-down :timestamp="remainingTime" fontSize="24rpx" :separator="zh"
+								separatorColor="#FFFFFF" separatorSize="24rpx"></u-count-down>
 						</view>
 					</view>
 					<!--					<image class='r' src="https://ceres.zkthink.com/static/images/clusterloss.png"></image>-->
@@ -407,13 +407,14 @@
 				huabeiChargeType: 1,
 				huabeiFeeRateList: [0, 0, 0],
 				alipayInfo: {},
+				isAllSelect: 1, //是否为拆单售后
 
 				// 客服
 				serviceURL: '',
 				corpId: '',
 				isLoading: false,
 				ifShow: false,
-				remainingTime:null, //倒计时剩余时间
+				remainingTime: null, //倒计时剩余时间
 			}
 		},
 		onLoad(options) {
@@ -646,9 +647,13 @@
 			},
 			//退款
 			applayItemTap(proItem) {
+				console.log(this.dataList.skus.length,'dataList99999')
+				if(this.dataList.skus.length>1){
+					this.isAllSelect = 0
+				}
 				uni.setStorageSync('applyItem', proItem)
 				uni.navigateTo({
-					url: 'afterSaleApplyRefund?orderId=' + this.orderId
+					url: 'afterSaleApplyRefund?orderId=' + this.orderId + '&isAllSelect=' + this.isAllSelect
 				})
 			},
 			//去退款详情
@@ -1002,7 +1007,7 @@
 				}
 				uni.setStorageSync('afterSaleApplyRefund', this.orderRefundList)
 				uni.navigateTo({
-					url: `afterSaleApplyRefund?orderId=${this.orderId}&sellPriceitem=${this.dataList.price}`,
+					url: `afterSaleApplyRefund?orderId=${this.orderId}&sellPriceitem=${this.dataList.price}&isAllSelect=1`,
 				})
 			},
 			confirmReceiptTap() {

+ 12 - 0
pages_category_page2/orderModule/refundDetails.vue

@@ -58,6 +58,12 @@
 					</view>
 <!--					<image class='r' src="https://ceres.zkthink.com/static/images/afterSaleDetailsFalse.png"></image>-->
 				</view>
+				<!--  平台介入拒绝-->
+				<view class="status-title-box" v-if="status == 6">
+					<view class="l">
+						<text class="status">审核失败</text>
+					</view>
+				</view>
 				<!--  退款成功-->
 				<view class="status-title-box" v-if="status == 9">
 					<view class="l">
@@ -106,6 +112,12 @@
 					<text class="price-box"><text class="fuhao">¥</text>{{itemlist.price}}</text>
 				</view>
 			</view>
+			<!-- 平台介入关闭 -->
+			<view class="order-details-info-box mt20" v-if="status == 6">
+				<view class="address-box return-explain-box">
+					<view>平台介入申请失败,退款已关闭</view>
+				</view>
+			</view>
 			<!-- 退款关闭 -->
 			<view class="order-details-info-box mt20" v-if="status == 9">
 				<view class="address-box return-explain-box">

+ 1 - 1
pages_category_page2/orderModule/returnDetails.vue

@@ -264,7 +264,7 @@
 			goAddLogistics(){
 				uni.setStorageSync("itemLogistics",this.item)
 				uni.navigateTo({
-				    url:'addLogistics'
+				    url:'../../pages_category_page1/orderModule/addLogistics'
 				})
 			},
       // 平台介入

+ 28 - 22
pages_category_page2/userModule/accountLogin.vue

@@ -6,17 +6,17 @@
 		</view>
 		<view class="iphoneNum-box flex-row-plus flex-items">
 			<view style="margin-right: 30rpx">
-        <image class="loginIcon" src="https://ceres.zkthink.com/static/images/phone.png"></image>
+				<image class="loginIcon" src="https://ceres.zkthink.com/static/images/phone.png"></image>
 			</view>
 			<view>
 				<input v-model="loginQuery.account" placeholder-class="iphoneNum-input" type="number"
-					placeholder="请输入您的手机号" />
+					maxlength='11' placeholder="请输入您的手机号" />
 			</view>
 		</view>
 		<view class="flex-row-plus mar-top-20">
 			<view class="code-box">
 				<view style="margin-right: 30rpx">
-          <image class="loginIcon" src="https://ceres.zkthink.com/static/images/code.png"></image>
+					<image class="loginIcon" src="https://ceres.zkthink.com/static/images/code.png"></image>
 				</view>
 				<view>
 					<input v-model="loginQuery.code" placeholder-class="codeNum-input" placeholder="请输入验证码" />
@@ -86,7 +86,7 @@
 				} else {
 					const that = this
 					uni.showLoading({
-            mask: true,
+						mask: true,
 						title: '正在登录...',
 						duration: 2000,
 					});
@@ -119,24 +119,24 @@
 							if (that.beforePage && that.beforePage.route !==
 								'pages_category_page2/userModule/accountLogin' &&
 								that.beforePage.route !== 'pages_category_page2/userModule/login' &&
-                  that.beforePage.route !== 'pages_category_page2/userModule/register') {
-							  console.log(19)
+								that.beforePage.route !== 'pages_category_page2/userModule/register') {
+								console.log(19)
 								uni.navigateBack({
 									delta: 1
 								})
 							} else if (that.doubleBeforePage && that.doubleBeforePage.route !==
 								'pages_category_page2/userModule/accountLogin' &&
 								that.doubleBeforePage.route !== 'pages_category_page2/userModule/login' &&
-                  that.doubleBeforePage.route !== 'pages_category_page2/userModule/register') {
+								that.doubleBeforePage.route !== 'pages_category_page2/userModule/register') {
 								uni.navigateBack({
 									delta: 2
 								})
 							} else {
-							setTimeout(function() {
-								uni.switchTab({
-									url: '../../pages/tabbar/user/index'
-								})
-							}, 600)
+								setTimeout(function() {
+									uni.switchTab({
+										url: '../../pages/tabbar/user/index'
+									})
+								}, 600)
 							}
 						}
 					}).catch(res => {
@@ -231,10 +231,12 @@
 			border-bottom: 1rpx solid #DDDDDD;
 			height: 100rpx;
 			width: 600rpx;
-      .loginIcon {
-        width: 40rpx;
-        height: 53rpx;
-      }
+
+			.loginIcon {
+				width: 40rpx;
+				height: 53rpx;
+			}
+
 			.iphoneNum-input {
 				color: #999999;
 				font-size: 28rpx;
@@ -246,6 +248,7 @@
 			border-bottom: 1rpx solid #DDDDDD;
 			height: 100rpx;
 			width: 600rpx;
+
 			.passwordNum-input {
 				color: #999999;
 				font-size: 28rpx;
@@ -262,13 +265,16 @@
 			flex-direction: row;
 			justify-content: space-between;
 			align-items: center;
-      .loginIcon {
-        width: 44rpx;
-        height: 50rpx;
-      }
+
+			.loginIcon {
+				width: 44rpx;
+				height: 50rpx;
+			}
+
 			.code-lab {
 				width: 200rpx;
 			}
+
 			.codeNum-input {
 				color: #999999;
 				font-size: 28rpx;
@@ -289,8 +295,8 @@
 		}
 
 		.registerBut {
-      background: #333333;
-      color: #FFEBC4;
+			background: #333333;
+			color: #FFEBC4;
 			height: 100rpx;
 			width: 600rpx;
 			text-align: center;

+ 238 - 212
pages_category_page2/userModule/address.vue

@@ -1,9 +1,9 @@
 <!-- 地址列表 -->
 <template>
 	<view class="container">
-		<view class="pad-bot-140 addAddress">
+		<view v-if="addresListlist.length" class="pad-bot-140 addAddress">
 			<view class="addAddress-content flex-row-plus" v-for="(item, index) in addresListlist" :key="index">
-<!--				<view class="address-hesd">{{item.username1}}</view>-->
+				<!--				<view class="address-hesd">{{item.username1}}</view>-->
 				<view class="address-detail" @click="itemTap(item)">
 					<view class="userName">
 						<text>{{item.receiveName}}</text>
@@ -18,52 +18,53 @@
 				<view class="editIcon" @click="editAdress(index, item)"></view>
 			</view>
 		</view>
-		<view v-if="ifEmpty" class="emptyAddress-box">
+		<view v-else class="emptyAddress-box">
 			<image class="emptyAddress" src="https://ceres.zkthink.com/static/img/noAddress.png"></image>
 			<text>你还没有添加地址哦~</text>
 		</view>
-    <!-- #ifdef MP-WEIXIN -->
-    <view class="wxAddressNBox">
-      <view class="flex-items btnBox flex-sp-between">
-        <view class="wxAddress btn flex-items flex-center" @click="wxAddFn">
-          <image src="https://ceres.zkthink.com/static/images/weixin2x.png"></image>
-          <text>微信导入</text>
-        </view>
-        <view class="addAddressBtn btn" @click="addAddressClick">添加新地址</view>
-      </view>
-    </view>
-    <!-- #endif -->
-    <!-- #ifdef H5 || APP-PLUS || MP-ALIPAY -->
-    <view class="addAddress-box">
-      <view class="addAddress" @click="addAddressClick">添加新地址</view>
-    </view>
-    <!-- #endif -->
+		<!-- #ifdef MP-WEIXIN -->
+		<view class="wxAddressNBox">
+			<view class="flex-items btnBox flex-sp-between">
+				<view class="wxAddress btn flex-items flex-center" @click="wxAddFn">
+					<image src="https://ceres.zkthink.com/static/images/weixin2x.png"></image>
+					<text>微信导入</text>
+				</view>
+				<view class="addAddressBtn btn" @click="addAddressClick">添加新地址</view>
+			</view>
+		</view>
+		<!-- #endif -->
+		<!-- #ifdef H5 || APP-PLUS || MP-ALIPAY -->
+		<view class="addAddress-box">
+			<view class="addAddress" @click="addAddressClick">添加新地址</view>
+		</view>
+		<!-- #endif -->
 	</view>
 </template>
 
 <script>
-  import {hidden} from "../../utils/hidden";
+	import {
+		hidden
+	} from "../../utils/hidden";
 	const NET = require('../../utils/request')
 	const API = require('../../config/api')
 	export default {
 		data() {
 			return {
-				addresList:[],
-				headWord:'',
-				editAddress:[],
-				type:0,
-				addresListlist:[],
-				page:1,//当前页
-				pageSize:20,//每页记录数
-				loadingType:0,
-        addData: {},
-        ifEmpty: false
+				addresList: [],
+				headWord: '',
+				editAddress: [],
+				type: 0,
+				addresListlist: [],
+				page: 1, //当前页
+				pageSize: 20, //每页记录数
+				loadingType: 0,
+				addData: {},
 			}
 		},
 		onLoad(options) {
 			this.type = options.type
 		},
-		onShow(options){
+		onShow(options) {
 			this.addresListlist = []
 			this.page = 1
 			this.getAddressData()
@@ -75,244 +76,269 @@
 			this.back();
 			return true;
 		},
-		onReachBottom(){
-			if(this.loadingType == 1){
+		onReachBottom() {
+			if (this.loadingType == 1) {
 				uni.stopPullDownRefresh()
-			}else{
-				this.page = this.page+1
+			} else {
+				this.page = this.page + 1
 				this.getAddressData()
 			}
 		},
 		methods: {
-			back(){
-				if(this.type == 1){
+			back() {
+				if (this.type == 1) {
 					uni.navigateTo({
-						url:'../../pages_category_page1/orderModule/orderConfirm?type=3'
+						url: '../../pages_category_page1/orderModule/orderConfirm?type=3'
 					})
-				}else{
+				} else {
 					uni.switchTab({
-						url:'../../pages/tabbar/user/index'
+						url: '../../pages/tabbar/user/index'
 					});
 				}
 			},
-			addAddressClick(){
-				if(this.type == 1){
+			addAddressClick() {
+				if (this.type == 1) {
 					uni.navigateTo({
-						url:'addAddress?type=1&ordertype=1'
+						url: 'addAddress?type=1&ordertype=1'
 					})
-				}else{
+				} else {
 					uni.navigateTo({
-						url:'addAddress?type=1'
+						url: 'addAddress?type=1'
 					})
 				}
 
 			},
-			getAddressData(){
+			getAddressData() {
 				uni.showLoading({
 					mask: true,
 					title: '加载中...',
 				})
-				NET.request(API.QueryMemberAddres,{page:this.page,pageSize:this.pageSize},"GET").then(res => {
+				NET.request(API.QueryMemberAddres, {
+					page: this.page,
+					pageSize: this.pageSize
+				}, "GET").then(res => {
 					this.addresList = res.data
-					if(res.data.list.length == 0){
+					console.log(this.addresList,'this.addresList')
+					if (res.data.list.length == 0) {
 						this.loadingType = 1
 						this.page = this.page
 					}
-					for(let i =0;i<res.data.list.length;i++){
-						this.addresList.list[i].username1 = this.addresList.list[i].receiveName.slice(0,1)
+					for (let i = 0; i < res.data.list.length; i++) {
+						this.addresList.list[i].username1 = this.addresList.list[i].receiveName.slice(0, 1)
 					}
 					this.addresListlist = this.addresListlist.concat(res.data.list)
-          this.addresListlist.forEach((item) => {
-            item.receivePhone = hidden(item.receivePhone, 3, 4)
-          })
-          if (this.addresList.length === 0) {
-            this.ifEmpty = true
-          }
+					this.addresListlist.forEach((item) => {
+						item.receivePhone = hidden(item.receivePhone, 3, 4)
+					})
+					console.log(this.addresListlist.length,'this.addresListlist')
 					uni.hideLoading();
 				}).catch(err => {
 					console.log(err)
 					uni.hideLoading();
 				})
 			},
-			editAdress(id, item){
-				uni.setStorageSync("editAddress",JSON.stringify(this.addresList.list[id]))
+			editAdress(id, item) {
+				uni.setStorageSync("editAddress", JSON.stringify(this.addresList.list[id]))
 				uni.navigateTo({
-					url:'addAddress?type=2&receiveId=' + item.receiveId
+					url: 'addAddress?type=2&receiveId=' + item.receiveId
 				})
 			},
-			itemTap(item){
-			    if(this.type == 1){
+			itemTap(item) {
+				if (this.type == 1) {
 					uni.setStorageSync('receiveItem', item)
 					uni.navigateTo({
-						url:'../../pages_category_page1/orderModule/orderConfirm?type=3&receiveId=' + item.receiveId
+						url: '../../pages_category_page1/orderModule/orderConfirm?type=3&receiveId=' + item
+							.receiveId
 					})
-			    }
+				}
 			},
-      // 微信导入
-      wxAddFn() {
-        let self = this
-        uni.chooseAddress({
-          success(res){
-            console.log(res, 'fsfsdfs')
-            self.addData['username'] = res.userName
-            self.addData['phone'] = res.telNumber
-            self.addData['ssqText'] =  `${res.provinceName}-${res.cityName}-${res.countyName}`
-            self.addData['defaultRegion'] = self.addData.ssqText.split("-")
-            self.addData['address'] = res.detailInfo
-            self.addData['province'] = res.provinceName
-            self.addData['city'] = res.cityName
+			// 微信导入
+			wxAddFn() {
+				let self = this
+				uni.chooseAddress({
+					success(res) {
+						console.log(res, 'fsfsdfs')
+						self.addData['username'] = res.userName
+						self.addData['phone'] = res.telNumber
+						self.addData['ssqText'] = `${res.provinceName}-${res.cityName}-${res.countyName}`
+						self.addData['defaultRegion'] = self.addData.ssqText.split("-")
+						self.addData['address'] = res.detailInfo
+						self.addData['province'] = res.provinceName
+						self.addData['city'] = res.cityName
 						uni.showLoading({
-	            mask: true,
-				      title: '导入中...',
-				    })
+							mask: true,
+							title: '导入中...',
+						})
 						setTimeout(() => {
-						    uni.hideLoading();
-								uni.navigateTo({
-		              url:'addAddress?type=3&wxAddressData=' + JSON.stringify(self.addData)
-		            })
+							uni.hideLoading();
+							uni.navigateTo({
+								url: 'addAddress?type=3&wxAddressData=' + JSON.stringify(self
+									.addData)
+							})
 						}, 500);
-          }
-        })
-      }
+					}
+				})
+			}
 		}
 	}
 </script>
 
 <style lang="scss">
-.container{
-  padding: 0 24rpx;
-  .addAddress {
-    border-top: 2rpx solid #F3F4F5;
-    padding-top: 30rpx;
-  }
-	.emptyAddress-box{
-		display: flex;
-		justify-content: center;
-		flex-direction: column;
-		align-items: center;
-		margin-top: 50%;
-		.emptyAddress{
-			width: 186upx;
-			height: 150upx;
-		}
-		text{
-			margin-top: 40upx;
-			color: #999999;
-		}
-	}
-	.addAddress-box{
-		position: fixed;
-		bottom: 50upx;
-		left: 30upx;
-		.addAddress{
-			width: 690upx;
-			height: 100upx;
-			color: #FFEBC4;
-			text-align: center;
-			background: #333333;
-		}
-	}
-  .wxAddressNBox {
-    position: fixed;
-    bottom: 50upx;
-    width: 100%;
-    left: 0;
-    .btnBox {
-      width: 100%;
-      background: #FFFFFF;
-      height: 120rpx;
-      padding: 0 50rpx;
-      .btn {
-        width: 300rpx;
-        background: #FFFFFF;
-        height: 90rpx;
-        line-height: 90rpx;
-        border: 2rpx solid #E4E5E6;
-        text-align: center;
-      }
-      .addAddressBtn {
-        color: #FFEBC4;
-        background: #333333;
-        border: 2rpx solid #333333;
-      }
-      .wxAddress {
-        image {
-          width: 45rpx;
-          height: 37rpx;
-          margin-right: 20rpx;
-        }
-      }
-    }
-  }
-	.addAddress-content{
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-    padding-bottom: 40rpx;
-    margin-bottom: 40rpx;
-    border-bottom: 2rpx solid #F3F4F5;
-    .address-detail {
-      .userName {
-        margin-bottom: 15rpx;
-      }
-    }
-		.lable {
-		  padding: 3rpx 10rpx;
-		  background: rgba(153, 153, 153, 0.2);
-		  border-radius: 4rpx;
-		  font-size: 24rpx;
-		  font-weight: 500;
-		  color: rgba(102, 102, 102, 1);
+	.container {
+		padding: 0 24rpx;
+
+		.addAddress {
+			border-top: 2rpx solid #F3F4F5;
+			padding-top: 30rpx;
 		}
-		.def{
-			padding: 3rpx 10rpx;
-			font-size: 20rpx;
-			font-weight: 400;
-			color: #C5AA7B !important;
-			background: rgba(197, 170, 123, 0.2) !important;
+
+		.emptyAddress-box {
+			display: flex;
+			justify-content: center;
+			flex-direction: column;
+			align-items: center;
+			margin-top: 50%;
+
+			.emptyAddress {
+				width: 186upx;
+				height: 150upx;
+			}
+
+			text {
+				margin-top: 40upx;
+				color: #999999;
+			}
 		}
-		.user-address {
-		  font-size: 28rpx;
-		  margin-left: 10rpx;
 
+		.addAddress-box {
+			position: fixed;
+			bottom: 50upx;
+			left: 30upx;
+
+			.addAddress {
+				width: 690upx;
+				height: 100upx;
+				color: #FFEBC4;
+				text-align: center;
+				background: #333333;
+			}
 		}
-		.address-hesd{
-			height: 70upx;
-			width: 70upx;
-			background-color: #BBBBBB;
-			color: #FFFFFF;
-			border-radius: 50%;
-			line-height: 70upx;
-			text-align: center;
+
+		.wxAddressNBox {
+			position: fixed;
+			bottom: 50upx;
+			width: 100%;
+			left: 0;
+
+			.btnBox {
+				width: 100%;
+				background: #FFFFFF;
+				height: 120rpx;
+				padding: 0 50rpx;
+
+				.btn {
+					width: 300rpx;
+					background: #FFFFFF;
+					height: 90rpx;
+					line-height: 90rpx;
+					border: 2rpx solid #E4E5E6;
+					text-align: center;
+				}
+
+				.addAddressBtn {
+					color: #FFEBC4;
+					background: #333333;
+					border: 2rpx solid #333333;
+				}
+
+				.wxAddress {
+					image {
+						width: 45rpx;
+						height: 37rpx;
+						margin-right: 20rpx;
+					}
+				}
+			}
 		}
-		.defaultAD-box{
-			width: 455upx;
-			.default-textBox{
-				padding-right: 20upx;
-				width: 80upx;
+
+		.addAddress-content {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding-bottom: 40rpx;
+			margin-bottom: 40rpx;
+			border-bottom: 2rpx solid #F3F4F5;
+
+			.address-detail {
+				.userName {
+					margin-bottom: 15rpx;
+				}
+			}
+
+			.lable {
+				padding: 3rpx 10rpx;
+				background: rgba(153, 153, 153, 0.2);
+				border-radius: 4rpx;
+				font-size: 24rpx;
+				font-weight: 500;
+				color: rgba(102, 102, 102, 1);
+			}
+
+			.def {
+				padding: 3rpx 10rpx;
+				font-size: 20rpx;
+				font-weight: 400;
+				color: #C5AA7B !important;
+				background: rgba(197, 170, 123, 0.2) !important;
+			}
+
+			.user-address {
+				font-size: 28rpx;
+				margin-left: 10rpx;
+
 			}
-			.default-content{
-				width: 435upx;
+
+			.address-hesd {
+				height: 70upx;
+				width: 70upx;
+				background-color: #BBBBBB;
+				color: #FFFFFF;
+				border-radius: 50%;
+				line-height: 70upx;
+				text-align: center;
 			}
-			.default-text{
-				color: #C5AA7B;
-				background-color: #FFE4CC;
-				height: 36upx;
-				width: 60upx;
-				font-size: 26upx;
-				border-radius: 4upx;
-				align-items: center;
-				line-height: 36upx;
+
+			.defaultAD-box {
+				width: 455upx;
+
+				.default-textBox {
+					padding-right: 20upx;
+					width: 80upx;
+				}
+
+				.default-content {
+					width: 435upx;
+				}
+
+				.default-text {
+					color: #C5AA7B;
+					background-color: #FFE4CC;
+					height: 36upx;
+					width: 60upx;
+					font-size: 26upx;
+					border-radius: 4upx;
+					align-items: center;
+					line-height: 36upx;
+				}
+			}
+
+			.editIcon {
+				width: 50rpx;
+				height: 50rpx;
+				display: block;
+				background: url("https://ceres.zkthink.com/static/images/addEdit.png") no-repeat center center;
+				background-size: contain;
 			}
 		}
-    .editIcon {
-      width: 50rpx;
-      height: 50rpx;
-      display: block;
-      background: url("https://ceres.zkthink.com/static/images/addEdit.png") no-repeat center center;
-      background-size: contain;
-    }
 	}
-}
-
 </style>

+ 86 - 14
pages_category_page2/userModule/footprintList.vue

@@ -13,10 +13,10 @@
 					<label class="mar-left-30">{{ditem.createTime}}</label>
 				</view>
         <view class="listItem" :index="index" v-for="(item, index) in ditem.products" :key="item.footprintId" @click="click(index,findex)">
-          <u-swipe-action :show="item.show" @open="open(index,findex)" :options="options">
+          <u-swipe-action :show="item.show" @open="open(index,findex)" @click="delFootProduction(index,findex)" :options="options">
             <view class="itemBox">
               <view @click.stop="toGoodsDetails(item.productId,item.shopId,item.skuId)" class="item wid flex-display">
-                <view v-show="allCheckShow" class="selectIconBox">
+                <view v-if="allCheckShow" class="selectIconBox">
                   <image v-if="item.selected == 1" @click.stop="footItemSel(index,findex,0)" src="https://ceres.zkthink.com/static/images/selectActive.png" class="cart-select-img"></image>
                   <image v-else @click.stop="footItemSel(index,findex,1)" src="https://ceres.zkthink.com/static/images/selectEmpty.png" class="cart-select-img"></image>
                 </view>
@@ -41,22 +41,42 @@
 					<text>全选</text>
 				</view>
 				<view class="right">
-					<view class="btn-delete" @click="footprintDel">删除</view>
+					<view class="btn-delete" @click="showCardModal">删除</view>
 				</view>
 			</view>
 			<view v-if="allCheckShow" class="pad-bot-140"></view>
 		</view>
-		<view v-else class="mar-top-60 empty-box" @click="goToIndex">
-			<image class="footprint-empty" src="https://ceres.zkthink.com/static/img/bgnull.png"></image>
+		<view v-else class="mar-top-100 empty-box" @click="goToIndex">
+			<image class="footprint-empty" src="https://datumstar.oss-cn-shenzhen.aliyuncs.com/dkyaemtmfwfxbvtuyyhi.png"></image>
 			<view class="tohome-box flex-items-plus">去首页逛逛</view>
 		</view>
+		
+		<!-- 删除确认弹窗 -->
+		<tui-modal :show="cardModal" :custom="true" :fadein="true">
+			<view class="Put-box1">
+				<view class="text-align fs34 fs-bold">
+					温馨提示
+				</view>
+				<view class="mar-top-40 text-align">
+					是否删除该浏览足迹?
+				</view>
+				<view class="btn submit" @click="footprintDel">确定</view>
+			</view>
+			<view v-if="cardModal" @click="cardModal = false" class="cancelDel">
+				<image src="https://ceres.zkthink.com/static/images/cancelClose.png" mode=""></image>
+			</view>
+		</tui-modal>
 	</view>
 </template>
 
 <script>
 	const NET = require('../../utils/request')
 	const API = require('../../config/api')
+	import tuiModal from "@/components/modal/modal";
 	export default {
+		components: {
+			tuiModal
+		},
 		data() {
 			return {
 				allCheckShow:false,
@@ -79,7 +99,9 @@
 				footprintList:[],
 				footEmpty:false,
 				newTimeArr:[],
-        tipsShow: false
+                tipsShow: false,
+				cardModal:false, //删除弹窗显示
+				ids: []
 			};
 		},
 		onLoad() {
@@ -100,31 +122,52 @@
 					url:'../../pages_category_page1/goodsModule/goodsDetails?productId='+productId+'&shopId='+shopId+'&skuId='+skuId
 				})
 			},
-			footprintDel(){
-				this.isAllCheck = false
-				let ids = []
+			// 点击编辑底下删除按钮
+			showCardModal(){
 				this.footprintList.forEach((value,index)=>{
 					value.products.forEach((value1,index1)=>{
 						if(value1.selected == 1){
-							ids.push(value1.productId)
+							this.ids.push(value1.productId)
+						}
+						if(!this.ids.length){
+							uni.showToast({
+								title:'请选择要删除的足迹商品!',
+								icon:'none'
+							})
+						}else{
+							this.cardModal = true
 						}
 					})
 				})
+			},
+			// 滑动删除单个商品足迹
+			delFootProduction(index,findex){
+				let dataArr = this.footprintList[findex]
+				this.newTimeArr.push(dataArr.createTime)
+				this.ids.push(dataArr.products[index].productId)
+				this.footprintDel()
+			},
+			// 删除方法
+			footprintDel(){
+				this.isAllCheck = false
 				NET.request(API.deleteFootprint,{
-					ids:ids,
+					ids:this.ids,
 					times:this.newTimeArr
 				}, 'POST').then(res => {
 					this.footEmpty = true
 					this.page = 1
 					this.pageSize = 5
 					this.getFootprintList()
+					this.cardModal = false
+					this.newTimeArr = []
+					this.ids = []
 					setTimeout(function(){
 						uni.showToast({
 							title: "删除成功",
 							duration: 2000,
 							icon: 'none',
 						});
-					},2000)
+					},1000)
 				}).catch(res => {
 					this.$u.toast(`删除失败`);
 				})
@@ -208,6 +251,7 @@
 			},
 			// 如果打开一个的时候,不需要关闭其他,则无需实现本方法
 			open(index,findex) {
+				console.log('打开')
 				this.footprintList[findex].products[index].show = true;
 				this.footprintList[findex].products.map((val, idx) => {
 					if(index != idx) this.footprintList[findex].products[idx].show = false;
@@ -231,6 +275,7 @@
 			finishClick(){
 				this.allCheckShow = false
 			},
+			
       goToIndex() {
         uni.switchTab({
           url:'/pages/tabbar/index/index'
@@ -371,13 +416,40 @@ page {
 		flex-direction: column;
 		align-items: center;
 		.tohome-box{
-			color: #C5AA7B;
-			border: 1rpx solid #C5AA7B;
+			color: #FF7800;
+			border: 1rpx solid #FF7800;
 			width: 240rpx;
 			height: 70rpx;
 			margin-top: 50rpx;
 		}
 	}
+	.Put-box1 {
+		.btn {
+			text-align: center;
+			margin-top: 40rpx;
+			border: 1px solid #333333;
+			height: 80upx;
+			line-height: 80upx;
+			width: 100%;
+			color: #333333;
+		}
+	
+		.submit {
+			background-color: #333333;
+			color: #FFEBC4;
+		}
+	}
+	
+	.cancelDel {
+		position: absolute;
+		bottom: -50px;
+		left: 45%;
+	
+		image {
+			width: 60upx;
+			height: 60upx;
+		}
+	}
 }
 </style>
 <style scoped>

+ 27 - 21
pages_category_page2/userModule/login.vue

@@ -43,6 +43,7 @@
 			}
 		},
 		onLoad(options) {
+
 			// #ifndef MP
 			this.noMp = true
 			// #endif
@@ -52,12 +53,16 @@
 				uni.setStorageSync('last_page_options', pages[pages.length - 2].options);
 			}
 		},
-    onBackPress(){
-      uni.switchTab({
-        url: '../../pages/tabbar/index/index'
-      })
-      return true;
-    },
+		onShow() {
+			// 所有需要授权页面进登录页面取消loading
+			uni.hideLoading()
+		},
+		onBackPress() {
+			uni.switchTab({
+				url: '../../pages/tabbar/index/index'
+			})
+			return true;
+		},
 		methods: {
 			back() {
 				uni.switchTab({
@@ -76,10 +81,10 @@
 			},
 			// 微信登录
 			GetUserInfo() {
-        uni.showLoading({
-          title: '正在加载...',
-          mask: true
-        });
+				uni.showLoading({
+					title: '正在加载...',
+					mask: true
+				});
 				const that = this
 				// // #ifdef APP-PLUS
 				// uni.login({
@@ -118,7 +123,7 @@
 				uni.login({
 					provider: 'weixin',
 					success: (res2) => {
-            uni.hideLoading()
+						uni.hideLoading()
 						that.WXloginQuery.code = res2.code
 					},
 					fail: () => {
@@ -217,7 +222,8 @@
 					const last_page = uni.getStorageSync('last_page') || ''
 					if (last_page) {
 						const last_page_options = uni.getStorageSync('last_page_options') || ''
-						const str = JSON.stringify(last_page_options).replaceAll('{', '').replaceAll('}', '').replaceAll('"', '').replaceAll(':', '=').replaceAll(',', '&')
+						const str = JSON.stringify(last_page_options).replaceAll('{', '').replaceAll('}', '').replaceAll(
+							'"', '').replaceAll(':', '=').replaceAll(',', '&')
 						// 保留其他路由,需跳转2下 到最后登录页面
 						// uni.navigateBack({
 						//     delta: 1
@@ -257,14 +263,14 @@
 				if (shopId && salesId && shopId !== '' && salesId !== '') {
 					// 多次调用绑定方法,不提示任何信息即可
 					NET.request(API.BindSalesCustomer, {
-					  shopId: shopId,
-					  distributorId: salesId
+						shopId: shopId,
+						distributorId: salesId
 					}, 'POST').then(res => {
-					  uni.removeStorageSync('salesId');
-					  uni.removeStorageSync('shopId');
+						uni.removeStorageSync('salesId');
+						uni.removeStorageSync('shopId');
 					}).catch(err => {
-					  console.log('login bindSalesCustomer error')
-					  console.dir(err)
+						console.log('login bindSalesCustomer error')
+						console.dir(err)
 					})
 				}
 			}
@@ -329,7 +335,7 @@
 	}
 </style>
 <style scoped>
-.loginWxBut::after {
-  border-radius: 0 !important;
-}
+	.loginWxBut::after {
+		border-radius: 0 !important;
+	}
 </style>

+ 21 - 20
pages_category_page2/userModule/messageDetail.vue

@@ -27,7 +27,7 @@
 		},
 		onLoad(options) {
 			this.onlyid = options.noticeId
-            this.getNotice()
+			this.getNotice()
 		},
 		methods: {
 			formatRichText(html) {
@@ -58,32 +58,32 @@
 						this.htmlData = htmlData
 						console.log(this.htmlData)
 					})
-          uni.hideLoading()
+					uni.hideLoading()
 				}).catch(res => {
-          uni.hideLoading()
+					uni.hideLoading()
 					uni.showToast({
 						title: '失败',
 						icon: "none"
 					})
 				})
 			},
-      getNotice() {
-        uni.showLoading({
-          title: '加载中...',
-        })
-        NET.request(API.readNotice, {
-          noticeId: this.onlyid
-        }, 'POST').then(res => {
-			uni.hideLoading()
-          this.gitMassageDateils()
-        }).catch(res => {
-			uni.hideLoading()
-          uni.showToast({
-            title: '失败',
-            icon: "none"
-          })
-        })
-      }
+			getNotice() {
+				uni.showLoading({
+					title: '加载中...',
+				})
+				NET.request(API.readNotice, {
+					noticeId: this.onlyid
+				}, 'POST').then(res => {
+					uni.hideLoading()
+					this.gitMassageDateils()
+				}).catch(res => {
+					uni.hideLoading()
+					uni.showToast({
+						title: '失败',
+						icon: "none"
+					})
+				})
+			}
 		}
 	}
 </script>
@@ -106,6 +106,7 @@
 
 		.detailInfo {
 			word-wrap: break-word;
+
 			p {
 				font-size: 28upx;
 				color: #333333;

+ 109 - 18
pages_category_page2/userModule/personalDetails.vue

@@ -5,16 +5,17 @@
 			<view class="personalHead-box flex-sp-between flex-display flex-items">
 				<label>头像</label>
 				<image class="user-headImg" v-if="item.headImage" :src="item.headImage"></image>
-				<image class="user-headImg" v-else src="https://ceres.zkthink.com/static/img/user/morentouxiang.png"></image>
+				<image class="user-headImg" v-else src="https://ceres.zkthink.com/static/img/user/morentouxiang.png">
+				</image>
 			</view>
 		</view>
 		<view class="personalBack-box flex-items-plus flex-column">
 			<view class="personalHead-box flex-sp-between flex-display flex-items">
 				<label>昵称</label>
-<!--				<label class="font-color-999" v-if="item.name">{{item.name}}</label>-->
-<!--        <label class="font-color-999" v-else>{{item.phone}}</label>-->
-        <!-- <input class="nameInput" v-if="name" v-model="name" type="text" placeholder="请输入内容" @blur="changeName(1)" /> -->
-        <!-- <input class="nameInput" v-else type="text" v-model="phone" placeholder="请输入内容" @blur="changeName(2)" /> -->
+				<!--				<label class="font-color-999" v-if="item.name">{{item.name}}</label>-->
+				<!--        <label class="font-color-999" v-else>{{item.phone}}</label>-->
+				<!-- <input class="nameInput" v-if="name" v-model="name" type="text" placeholder="请输入内容" @blur="changeName(1)" /> -->
+				<!-- <input class="nameInput" v-else type="text" v-model="phone" placeholder="请输入内容" @blur="changeName(2)" /> -->
 				<input class="nameInput" v-model="name" type="text" placeholder="请输入内容" @blur="changeName" />
 			</view>
 			<view class="personalHead-box flex-sp-between flex-display flex-items" @click="sexShowClick">
@@ -42,9 +43,25 @@
 				</label>
 			</view>
 		</view>
-		<view class="flex-items-plus mar-top-50">
+		<view class="agreement">
+			<view class="agreement agreement_top" @click="protocol('app_privacy_agreement')">
+				<text>用户隐私协议</text>
+				<image src="../../static/images/right.png" mode=""></image>
+			</view>
+			<view class="agreement" @click="protocol('app_user_agreement')">
+				<text>用户服务协议</text>
+				<image src="../../static/images/right.png" mode=""></image>
+			</view>
+		</view>
+
+		<view class="mar-top-100">
 			<view class="exitLoginBut  flex-items-plus" @click="quit">退出登录</view>
+			<!-- #ifdef APP-PLUS -->
+			<view class="cancellation" @click="cancellation">注销账号</view>
+			<!-- #endif -->
 		</view>
+
+
 		<!-- 修改性别弹窗 -->
 		<u-select v-model="sexShow" title="修改性别" :list="sexList" @confirm="ConfirmSex"></u-select>
 		<!-- 修改生日弹窗 -->
@@ -99,7 +116,7 @@
 				},
 				code: '',
 				phone: '',
-        name: '',
+				name: '',
 				sexList: [{
 						value: '1',
 						label: '男'
@@ -131,14 +148,39 @@
 			})
 		},
 		methods: {
+			// 多商户用户协议
+			protocol(type) {
+				uni.navigateTo({
+					url: 'protocol?type=' + type
+				})
+			},
+			cancellation() {
+				uni.showModal({
+					title: "温馨提示",
+					content: "是否注销此账号!",
+					confirmText:"前往注销",
+					success(res) {
+						if (res.cancel) {
+							uni.showToast({
+								icon: 'none',
+								title: '已取消'
+							})
+						} else if (res.confirm) {
+							uni.navigateTo({
+								url: 'unsubscribe'
+							})
+						}
+					}
+				})
+			},
 			// 修改生日
 			changeTime() {
 				if (this.birthday == '1970-01-01' || this.birthday == '') {
 					this.timeShow = true
 				}
 			},
-      // 修改昵称
-      changeName() {
+			// 修改昵称
+			changeName() {
 				const newName = this.name || this.phone
 				if (!newName) {
 					uni.showToast({
@@ -163,13 +205,13 @@
 				}).catch(res => {
 					uni.hideLoading()
 				})
-      },
+			},
 			// 提交修改生日
 			ConfirmTime(content) {
 				if (this.birthday == '1970-01-01' || this.birthday == '') {
 					let birthday = content.year + '-' + content.month + '-' + content.day
 					uni.showLoading({
-            mask: true,
+						mask: true,
 						title: "正在加载中"
 					})
 					NET.request(API.UpdateUser, {
@@ -193,7 +235,7 @@
 			// 提交修改性别
 			ConfirmSex(content) {
 				uni.showLoading({
-          mask: true,
+					mask: true,
 					title: "正在加载中"
 				})
 				let sex = content[0].label
@@ -240,7 +282,7 @@
 			},
 			quit() {
 				uni.showLoading({
-          mask: true,
+					mask: true,
 					title: '正在退出...',
 					duration: 2000,
 				});
@@ -258,7 +300,7 @@
 			onGetAuthorize() {
 				const that = this
 				uni.showLoading({
-          mask: true,
+					mask: true,
 					title: '验证中...',
 				})
 				my.getPhoneNumber({
@@ -304,6 +346,43 @@
 </script>
 
 <style lang='scss'>
+	.agreement {
+		width: 710rpx;
+		margin: 20rpx auto 0;
+		background-color: #fff;
+
+		.agreement_top {
+			&::after {
+				content: "";
+				display: block;
+				position: absolute;
+				left: 32rpx;
+				bottom: 0;
+				width: 646rpx;
+				height: 4rpx;
+				background: #F5F7FA;
+			}
+		}
+
+		.agreement {
+			width: 100%;
+			height: 108rpx;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			font-size: 28rpx;
+			color: #333;
+			padding: 0 10rpx 0 32rpx;
+			box-sizing: border-box;
+			position: relative;
+
+			image {
+				width: 60rpx;
+				height: 60rpx;
+			}
+		}
+	}
+
 	.phoneWxBut {
 		width: 160rpx;
 		height: 60rpx;
@@ -327,9 +406,10 @@
 				border-bottom: 1upx solid #E5E5E5;
 				padding-bottom: 20upx;
 				margin-top: 36upx;
-        .nameInput {
-          text-align: right;
-        }
+
+				.nameInput {
+					text-align: right;
+				}
 			}
 
 			.personalHead-box1 {
@@ -363,12 +443,23 @@
 		}
 
 		.exitLoginBut {
-			width: 690upx;
 			height: 100upx;
 			background: #333333;
 			color: #FFEBC4;
 		}
 
+		.cancellation {
+			height: 100rpx;
+			margin: 24rpx auto 0;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			color: #C5AA7B;
+			font-size: 28rpx;
+			background: #FFFFFF;
+			border: 3rpx solid #F3F4F5;
+		}
+
 		.sexRadio-box {
 			width: 520upx;
 			height: 328upx;

+ 21 - 14
pages_category_page2/userModule/protocol.vue

@@ -8,34 +8,41 @@
 <script>
 	const NET = require('../../utils/request')
 	const API = require('../../config/api')
-	export default{
-		data(){
-			return{
-				type:'app_protocol_context',
-				item:{}
+	export default {
+		data() {
+			return {
+				type: 'app_privacy_agreement',
+				item: {}
 			}
 		},
-		onLoad(){
+		onLoad(item) {
+			this.type = item.type
+			let title = "《cereshop》商城用户协议"
+			if (this.type === 'app_privacy_agreement') {
+				title = "《cereshop》商城隐私协议"
+			}
+			uni.setNavigationBarTitle({
+				title: title
+			})
 			this.getquery()
-			
 		},
-		methods:{
-			getquery(){
-				NET.request(API.Query,{
-					name:this.type
+		methods: {
+			getquery() {
+				NET.request(API.Query, {
+					name: this.type
 				}, 'GET').then(res => {
 					this.item = res.data
 				}).catch(res => {
-					
+
 				})
 			}
-			
+
 		}
 	}
 </script>
 
 <style scoped>
-	#text{
+	#text {
 		padding: 40rpx;
 	}
 </style>

+ 68 - 32
pages_category_page2/userModule/register.vue

@@ -7,17 +7,17 @@
 		<view>
 			<view class="iphoneNum-box flex-row-plus flex-items">
 				<view>
-          <image class="loginIcon" src="https://ceres.zkthink.com/static/images/phone.png"></image>
+					<image class="loginIcon" src="https://ceres.zkthink.com/static/images/phone.png"></image>
 				</view>
 				<view style="margin-left: 40rpx;">
 					<input v-model="phone" class="iphoneNum-inputbox" placeholder-class="iphoneNum-input" type="number"
-						placeholder="请输入您的手机号" />
+						maxlength="11" placeholder="请输入您的手机号" />
 				</view>
 			</view>
 			<view class="flex-row-plus mar-top-20">
 				<view class="code-box">
 					<view>
-            <image class="loginIcon" src="https://ceres.zkthink.com/static/images/code.png"></image>
+						<image class="loginIcon" src="https://ceres.zkthink.com/static/images/code.png"></image>
 					</view>
 					<view style="margin-left: 40rpx;">
 						<input v-model="RegisterQuery.code" class="codeNum-inputbox" placeholder-class="codeNum-input"
@@ -25,18 +25,23 @@
 					</view>
 				</view>
 				<view :class="disabled === true ? 'on' : ''" :disabled="disabled" class="getcode" @click="codede">
-					{{text}}</view>
+					{{text}}
+				</view>
 			</view>
 		</view>
-		<view class="mar-top-100">
-			<text class="font-color-999">注册即代表同意</text>
-			<text class="font-color-C5AA7B" @click="protocol">《cereshop》商城用户协议</text>
-		</view>
 		<view class="registerBut" @click="onregister">注册</view>
 		<view class="flex-row-plus mar-top-30">
 			<text class="font-color-C5AA7B">已有账号,</text>
 			<view class="font-color-C5AA7B" @click="gologin">去登录</view>
 		</view>
+		<view class="agreement">
+			<image v-if="!agreement" src="../../static/images/none.png" mode="" @click="agreement=true"></image>
+			<image v-else src="../../static/images/solid.png" mode="" @click="agreement=false"></image>
+			<text class="font-color-999">注册即代表同意</text>
+			<text class="font-color-C5AA7B" @click="protocol('app_user_agreement')">《APP用户服务协议》</text>和
+			<text class="font-color-C5AA7B" @click="protocol('app_privacy_agreement')">《APP个人隐私协议》</text>
+		</view>
+
 	</view>
 </template>
 
@@ -59,6 +64,7 @@
 					phone: "",
 					type: ""
 				},
+				agreement: false
 			}
 		},
 		mixins: [sendVerifyCode],
@@ -87,9 +93,15 @@
 						duration: 2000,
 						icon: 'none'
 					});
+				} else if(!this.agreement){
+					uni.showToast({
+						title: '请先阅读并同意《用户服务协议和个人隐私协议》',
+						duration: 2000,
+						icon: 'none'
+					});
 				} else {
 					uni.showLoading({
-            mask: true,
+						mask: true,
 						title: '正在注册...',
 						duration: 2000,
 					})
@@ -99,14 +111,21 @@
 						verificationCode: this.RegisterQuery.code,
 					}, 'POST').then(res => {
 						uni.hideLoading()
-            uni.showToast({
-              title: '注册成功!',
-              duration: 2000,
-              icon: 'none'
-            });
-						uni.navigateTo({
-							url: 'accountLogin'
-						})
+						uni.showToast({
+							title: '注册成功!',
+							duration: 2000,
+							icon: 'none'
+						});
+						const item = res.data
+						uni.setStorageSync('storage_key', item);
+						setTimeout(function() {
+							uni.switchTab({
+								url: '../../pages/tabbar/user/index'
+							})
+						}, 600)
+						// uni.navigateTo({
+						// 	url: 'accountLogin'
+						// })
 					}).catch(res => {
 						uni.showToast({
 							title: res.data.message,
@@ -184,20 +203,21 @@
 				})
 			},
 			// 多商户用户协议
-			protocol() {
+			protocol(type) {
 				uni.navigateTo({
-					url: 'protocol'
+					url: 'protocol?type=' + type
 				})
-			}
+			},
 		}
 	}
 </script>
 <style lang="scss" scoped>
 	.container {
 		background-color: #FFFFFF;
-		height: 100vh;
+
 		.login-logoBox {
 			margin: 100rpx 0;
+
 			.login-logo {
 				width: 200rpx;
 				height: 166rpx;
@@ -208,13 +228,16 @@
 			border-bottom: 1rpx solid #F3F4F5;
 			height: 100rpx;
 			width: 600rpx;
-      .loginIcon {
-        width: 40rpx;
-        height: 53rpx;
-      }
-			input{
+
+			.loginIcon {
+				width: 40rpx;
+				height: 53rpx;
+			}
+
+			input {
 				font-size: 28rpx;
 			}
+
 			.iphoneNum-input {
 				color: #999999;
 				font-size: 28rpx;
@@ -227,20 +250,23 @@
 		}
 
 		.code-box {
-      border-bottom: 1rpx solid #F3F4F5;
+			border-bottom: 1rpx solid #F3F4F5;
 			height: 100rpx;
 			width: 350rpx;
 			display: flex;
 			flex-direction: row;
 			justify-content: space-between;
 			align-items: center;
-      .loginIcon {
-        width: 44rpx;
-        height: 50rpx;
-      }
-			input{
+
+			.loginIcon {
+				width: 44rpx;
+				height: 50rpx;
+			}
+
+			input {
 				font-size: 28rpx;
 			}
+
 			.code-lab {
 				width: 200rpx;
 			}
@@ -291,5 +317,15 @@
 			line-height: 88rpx;
 			margin-top: 140rpx;
 		}
+
+		.agreement {
+			margin: 100rpx 50rpx;
+			line-height: 50rpx;
+			image{
+				width: 34rpx;
+				height: 34rpx;
+				margin-right: 15upx;
+			}
+		}
 	}
 </style>

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