xuxueyang
2024-07-25 e998d551df1c96572838bbf661be938aa79d1be8
sub_pages/customer/shopping/shopping.vue
@@ -1,14 +1,14 @@
<template>
  <view class="shopping-container">
    <view class="top-title"> 苏州市一价全含,市区内包邮派送到店
    <view class="top-title"><span class="t-red">*</span> 苏州市一价全含,市区内包邮派送到店
    </view>
    <view class="top-desc">
      全程鲜花冷链专线,时效快,损耗小
    </view>
    <view class="flex">
      <image class="icon-clock m-r-6" src="../../../static/common/icon-call.png"></image>
    <view class="flex top-kf">
      <image class="icon-clock m-r-6" src="../../../static/common/icon-kf.png"></image>
      <view class="name">
        客服电话 : &nbsp;&nbsp; <span class="topic-gray">{{ tel }}</span>
        15974805814
      </view>
    </view>
    <view class="">
@@ -54,14 +54,14 @@
    <view style="min-height:200rpx">
    </view>
    <view class="bottom-price flex">
      <view>
        <radio :checked="checkall" @change="selectAll"></radio>
      <view class="m-t-12">
        <radio :checked="checkall" @click="selectAll"></radio>
        全选
      </view>
      <view>
        合计:¥ {{ totalprice }} 元
      <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">
      <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx">
        提交订单
      </view>
    </view>
@@ -97,8 +97,8 @@
    totalprice() {
      let totalprice = 0
      this.list.forEach(dto => {
        dto.flowerList.forEach(item => {
      this.list && this.list.forEach(dto => {
        dto.flowerList && dto.flowerList.forEach(item => {
          if (this.ids.indexOf(item.id) >= 0) {
            totalprice += item.price * item.num
          }
@@ -176,87 +176,91 @@
            }
          }
        }
      }
    },
    selectAll() {
      if (this.checkall) {
        this.ids = []
        this.checkall = false
      } else {
        list.for(dto => {
      },
      selectAll() {
        console.log('selectAll', this.checkall)
        if (this.checkall) {
          this.ids = []
          this.checkall = false
          // this.$forceUpdate()
        } else {
          this.list.forEach(dto => {
            if (this.ids.indexOf(dto.id) < 0) {
              this.ids.push(dto.id)
            }
            dto.flowerList.forEach(item => {
              if (this.ids.indexOf(item.id) < 0) {
                this.ids.push(item.id)
              }
            })
          })
          this.checkall = true
        }
      },
      changeItem(dto, type) {
        if (type === 'supplier') {
          //全选上
          if (this.ids.indexOf(dto.id) < 0) {
            this.ids.push(dto.id)
            dto.flowerList.forEach(item => {
              if (this.ids.indexOf(item.id) < 0) {
                this.ids.push(item.id)
              }
            })
          } else {
            this.checkall = false
            this.ids.splice(this.ids.indexOf(dto.id), 1)
            dto.flowerList.forEach(item => {
              this.ids.splice(this.ids.indexOf(item.id), 1)
            })
          }
          dto.flowerList.forEach(item => {
            if (this.ids.indexOf(item.id) < 0) {
              this.ids.push(item.id)
            }
          })
        })
      }
    },
    changeItem(dto, type) {
      if (type === 'supplier') {
        //全选上
        if (this.ids.indexOf(dto.id) < 0) {
          this.ids.push(dto.id)
          dto.flowerList.forEach(item => {
            if (this.ids.indexOf(item.id) < 0) {
              this.ids.push(item.id)
            }
          })
        } else {
          this.checkall = false
          this.ids.splice(this.ids.indexOf(dto.id), 1)
          dto.flowerList.forEach(item => {
            this.ids.splice(this.ids.indexOf(item.id), 1)
          })
        }
          //更换个人的
          if (this.ids.indexOf(dto.id) < 0) {
            this.ids.push(dto.id)
          } else {
            this.checkall = false
      } else {
        //更换个人的
        if (this.ids.indexOf(dto.id) < 0) {
          this.ids.push(dto.id)
        } else {
          this.checkall = false
          if (this.ids.indexOf(dto.supplierId) >= 0) {
            this.ids.splice(this.ids.indexOf(dto.supplierId), 1)
          }
        }
      }
    },
    async addnum(dto, addnum) {
      if (dto.num + addnum >= 0) {
      } else {
        return
      }
      this.$message.showLoading()
      const {code} = await http.request('post', '/api/api/customer/flower/cart/change-num', {
            data: {
              id: dto.id,
              num: addnum
            if (this.ids.indexOf(dto.supplierId) >= 0) {
              this.ids.splice(this.ids.indexOf(dto.supplierId), 1)
            }
          }
      )
      this.$message.hideLoading()
      if (code === 0) {
        dto.num += addnum
        }
      },
      async addnum(dto, addnum) {
        if (dto.num + addnum >= 0) {
        } else {
          return
        }
        this.$message.showLoading()
        const {code} = await http.request('post', '/api/api/customer/flower/cart/change-num', {
              data: {
                id: dto.id,
                num: addnum
              }
            }
        )
        this.$message.hideLoading()
        if (code === 0) {
          dto.num += addnum
        }
      },
      async init() {
        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 || []
        }
      }
    },
    async init() {
      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 || []
      }
    }
  }
}
</script>
@@ -268,6 +272,7 @@
  .bottom-price {
    position: fixed;
    background-color: #ffffff;
    left: 0rpx;
    padding: 20rpx;
    right: 0rpx;
@@ -323,15 +328,15 @@
  }
  .top-title {
    font-size: 28rpx;
    font-size: 32rpx;
    color: #000000;
    line-height: 40rpx;
  }
  .top-desc {
    font-size: 24rpx;
    font-size: 28rpx;
    color: #666666;
    line-height: 34rpx;
    line-height: 40rpx;
  }
  .top-kf {
@@ -339,6 +344,7 @@
    border-radius: 8rpx;
    font-weight: 400;
    font-size: 24rpx;
    margin-top: 10rpx;
    color: #20613D;
    line-height: 52rpx;
    height: 52rpx;