From 2d5090c2b215a5ea7e489d4b50fbf30aae569324 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期五, 26 七月 2024 15:03:01 +0800
Subject: [PATCH] fix bug 接口对接和样式调整

---
 sub_pages/customer/shopping/shopping.vue |  141 ++++++++++++++++++++++++++++------------------
 1 files changed, 85 insertions(+), 56 deletions(-)

diff --git a/sub_pages/customer/shopping/shopping.vue b/sub_pages/customer/shopping/shopping.vue
index 749d2e4..df79d8b 100644
--- a/sub_pages/customer/shopping/shopping.vue
+++ b/sub_pages/customer/shopping/shopping.vue
@@ -14,40 +14,46 @@
     <view class="">
       <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data>
       <view class="shopping-item m-t-20" v-for="(item,index) of list" :key="index">
-        <u-swipe-action>
-          <u-swipe-action-item
-              :options="options1"
-              @click="(e)=>{clickSwipeButton(item)}"
-          >
-            <view class="sup-title">
-              <radio :checked="ids.indexOf(item.id)>=0" @change="changeItem(item,'supplier')">></radio>
-              {{ item.supplierName || '-' }}
-            </view>
-            <u-divider></u-divider>
-            <view v-for="(dto,j) of item.flowerList" :key="j">
-              <u-divider v-if="j>0"></u-divider>
+
+
+        <view class="sup-title">
+          <radio :checked="ids.indexOf(item.id)>=0" @click="changeItem(item,'supplier')"></radio>
+          {{ item.supplierName || '-' }}
+        </view>
+        <u-divider></u-divider>
+        <view v-for="(dto,j) of item.flowerList" :key="j">
+          <u-divider v-if="j>0"></u-divider>
+          <u-swipe-action>
+            <u-swipe-action-item
+                :options="options1"
+                @click="(e)=>{clickSwipeButton(dto)}"
+            >
               <view class="item-each flex">
-                <radio :checked="ids.indexOf(dto.id)>=0" @change="changeItem(dto,'flower')"></radio>
+                <radio :checked="ids.indexOf(dto.id)>=0" @click="changeItem(dto,'flower')"></radio>
                 <image class="img img100 m-r-6" :src="dto.url||dto.cover"></image>
-                <view>
+                <view class="flex1">
                   <view class="title"><span>{{ dto.levelStr || '-' }}</span>&nbsp;&nbsp;{{ dto.name || '-' }}</view>
                   <view class="price">
                     {{ dto.price || '-' }}元/扎
                   </view>
-                  <view class="desc m-t-12">
-                    <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view>
-                  </view>
-                  <view class="button-icons flex">
-                    <uni-icons v-if="dto.num&&dto.num>=1" type="minus" size="32"
-                               @click="addnum(dto,-1)"></uni-icons>
-                    <view class="curnums" v-if="dto.num&&dto.num>=1">{{ dto.num }}</view>
-                    <uni-icons type="plus-filled" size="32" @click="addnum(dto,1)"></uni-icons>
+                  <view class="flex">
+                    <view class="desc m-t-12">
+                      <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view>
+                    </view>
+                    <view class="button-icons flex m-l-a m-r-0">
+                      <uni-icons v-if="dto.num&&dto.num>=1" type="minus" size="32"
+                                 @click="addnum(dto,-1)"></uni-icons>
+                      <view class="curnums" v-if="dto.num&&dto.num>=1">{{ dto.num }}</view>
+                      <uni-icons type="plus-filled" size="32" @click="addnum(dto,1)"></uni-icons>
+                    </view>
                   </view>
                 </view>
               </view>
-            </view>
-          </u-swipe-action-item>
-        </u-swipe-action>
+            </u-swipe-action-item>
+          </u-swipe-action>
+        </view>
+
+
       </view>
 
     </view>
@@ -61,7 +67,7 @@
       <view class="m-t-12 m-l-a m-r-20 text-center">
         合计:<span class="t-red">¥ {{ totalprice || 0 }}</span> 元
       </view>
-      <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx">
+      <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx" @click="submitPay">
         提交订单
       </view>
     </view>
@@ -82,7 +88,8 @@
       checkall: false,
       options1: [{
         text: '删除'
-      }]
+      }],
+      list: []
     }
   },
   onShow() {
@@ -90,7 +97,7 @@
       this.init()
     }
   },
-  onLoad() {
+  mounted() {
     this.init()
   },
   computed: {
@@ -111,20 +118,28 @@
     async submitPay() {
       // order/confirm/info
       var arr = []
-      for (var j = 0; j < this.list.flowerList; j++) {
-
-        if (this.ids.indexOf(this.list.flowerList[j].id) >= 0) {
-          arr.push({
-            id: this.list.flowerList[j].id,
-            num: this.list.flowerList[j].num
-          })
+      for (var j = 0; j < this.list.length; j++) {
+        if(!this.list[j].flowerList){
+          continue
         }
+        for (var k = 0; k < this.list[j].flowerList.length; k++) {
+          if (this.ids.indexOf(this.list[j].flowerList[k].id) >= 0) {
+            arr.push({
+              id: this.list[j].flowerList[k].id,
+              num: this.list[j].flowerList[k].num
+            })
+          } else {
+            // console.log('skip', arr, this.list.flowerList[j],this.list.flowerList[j].id)
+          }
+        }
+
       }
-      if (this.arr.length < 1) {
+      if (arr.length < 1) {
+        console.log('请选择商品', arr, this.ids)
         return
       }
       this.$message.showLoading()
-      const {code, data} = await http.request('post', '/api/api/customer/order/confirm/info', {
+      const {code, data} = await http.request('post', '/api/customer/flower/order/confirm/info', {
             data: {
               flowers: arr,
             }
@@ -132,8 +147,9 @@
       )
       this.$message.hideLoading()
       if (code === 0) {
+        this.$storage.setItem('_cache_shopping_dto',JSON.stringify(data))
         uni.navigateTo({
-          url: '/sub_pages/customer/shopping/confirm?dto=' + +encodeURIComponent(JSON.stringify(data))
+          url: '/sub_pages/customer/shopping/confirm'
         })
       }
     },
@@ -141,10 +157,9 @@
       //删除商品,重新加载数据?
 
       this.$message.showLoading()
-      const {code} = await http.request('post', '/api/customer/flower/cart/change-num', {
-            data: {
-              id: dto.id,
-              num: addnum
+      const {code} = await http.request('get', '/api/customer/flower/cart/delete', {
+            params: {
+              id: item.id,
             }
           }
       )
@@ -154,11 +169,11 @@
           this.ids.splice(this.ids.indexOf(item.id), 1)
         }
         for (var i = 0; i < this.list.length; i++) {
-          if (this.list[i].id === dto.supplierId) {
+          if (this.list[i].id === item.supplierId) {
             this.list[i].splice(i, 1)
-            if (this.list.flowerList.length === 1) {
-              if (this.ids.indexOf(this.list[i].id) >= 0) {
-                this.ids.splice(this.ids.indexOf(this.list[i].id), 1)
+            if (this.list[i].flowerList.length === 1) {
+              if (this.ids.indexOf('supplier@' + this.list[i].supplierId) >= 0) {
+                this.ids.splice(this.ids.indexOf('supplier@' + this.list[i].supplierId), 1)
               }
               this.list[i].flowerList.splice(0, 1)
               this.list.splice(i, 1)
@@ -200,10 +215,11 @@
       }
     },
     changeItem(dto, type) {
+      console.log('click changeItem', dto, type, this.ids)
       if (type === 'supplier') {
         //全选上
-        if (this.ids.indexOf(dto.id) < 0) {
-          this.ids.push(dto.id)
+        if (this.ids.indexOf('supplier@' + dto.supplierId) < 0) {
+          this.ids.push('supplier@' + dto.supplierId)
           dto.flowerList.forEach(item => {
             if (this.ids.indexOf(item.id) < 0) {
               this.ids.push(item.id)
@@ -211,9 +227,9 @@
           })
         } else {
           this.checkall = false
-          this.ids.splice(this.ids.indexOf(dto.id), 1)
+          this.ids.splice(this.ids.indexOf('supplier@' + dto.supplierId), 1)
           dto.flowerList.forEach(item => {
-            this.ids.splice(this.ids.indexOf(item.id), 1)
+            this.ids.splice(this.ids.indexOf('supplier@' + item.supplierId), 1)
           })
         }
 
@@ -224,8 +240,8 @@
         } else {
           this.checkall = false
 
-          if (this.ids.indexOf(dto.supplierId) >= 0) {
-            this.ids.splice(this.ids.indexOf(dto.supplierId), 1)
+          if (this.ids.indexOf(dto.id) >= 0) {
+            this.ids.splice(this.ids.indexOf(dto.id), 1)
           }
         }
 
@@ -251,13 +267,17 @@
       }
     },
     async init() {
+      if (!this.currentInfo.customerDTO) {
+        this.$message.showToast('请先前往个人中心补充个人信息')
+        return
+      }
       this.$message.showLoading()
       await this.$store.dispatch('sign_clear', 'shopping');
       const {code, data} = await this.$http.request('get', '/api/customer/flower/cart/list', {})
       this.$message.hideLoading()
       this.list = []
       if (code === 0) {
-        this.list = data.list || []
+        this.list = data || []
 
       }
     }
@@ -282,13 +302,15 @@
   .shopping-item {
     padding: 28rpx 22rpx;
     position: relative;
+    background-color: #ffffff;
 
     .sup-title {
-
+      margin-left: 10rpx;
+      margin-top: 10rpx;
     }
 
     .item-each {
-      padding-left: 88rpx;
+      padding-left: 40rpx;
 
       .img {
         width: 124rpx;
@@ -323,7 +345,14 @@
     }
 
     .button-icons {
-      position: absolute;
+      //position: absolute;
+      //z-index: 10;
+      line-height: 40rpx;
+
+      .curnums {
+        margin-left: 10rpx;
+        margin-right: 10rpx;
+      }
     }
   }
 

--
Gitblit v1.9.3