xuxueyang
2024-07-30 1fb44496929548b4f07b37796d506dedc494d44a
sub_pages/customer/trade/detail.vue
@@ -5,14 +5,15 @@
         <view class="icon-container">
            <image v-if="!dto.collection" src="../../../static/common/icon-sc.png" @click="collectItem(dto)"
               class="icon-sc"></image>
            <image v-if="dto.collection" src="../../../static/common/icon-sc.png" @click="collectItem(dto)"
            <image v-if="dto.collection" src="../../../static/common/icon-sc-fill.png" @click="collectItem(dto)"
               class="icon-sc"></image>
            <!--        <view class="num">12</view>-->
         </view>
         <view class="icon-container">
            <image src="../../../static/common/icon-shop.png" @click="submitShopping(dto)" class="icon-shop">
            <image src="../../../static/common/icon-shop.png" @click="toShopping(dto)" class="icon-shop">
               <view class="image-shop-number" v-if="shopnum">{{shopnum||''}}</view>
            </image>
         </view>
@@ -52,7 +53,12 @@
            <view class="label">{{ param.name}}:</view>
            <view class="value">{{ param.value || '-'}}</view>
         </view>
         <!--      <view class="flex m-t-8">-->
         <view v-if="!dto.params">
            <view class="flex m-t-8">
               <view class="label">暂无</view>
            </view>
         </view>
         <!--      <view class="flex m-t-8">
         <!--        <view class="label">枝粗:</view>-->
         <!--        <view class="value">中等粗细</view>-->
         <!--      </view>-->
@@ -128,7 +134,8 @@
      data() {
         return {
            id: '',
            dto: {}
            dto: {},
            shopnum: 0,
         }
      },
      onLoad(options) {
@@ -136,9 +143,17 @@
         if (this.id) {
            this.getDetail()
         }
         this.refreshShopNum()
      },
      methods: {
         async refreshShopNum() {
            this.shopnum = await this.$store.dispatch('countShopping');
         },
         async collectItem(dto) {
            if (!this.currentInfo.id) {
               this.$message.showToast('请先登录')
               return
            }
            await this.$message.confirm(`是否${dto.collection?'移除':'添加到'}收藏`)
            this.$message.showLoading()
            const {
@@ -150,7 +165,7 @@
                     flowerId: dto.id
                  },
                  params: {
                     id: dto.id
                     flowerId: dto.id
                  }
               })
            if (code === 0) {
@@ -163,9 +178,15 @@
         },
         async submitShopping(dto) {
            //提交到购物车中
            this.$message.showLoading()
            await this.$store.dispatch('submitShopping', dto);
            this.$message.hideLoading()
            // this.$message.showLoading()
            const {
               code
            } = await this.$store.dispatch('submitShopping', dto);
            // this.$message.hideLoading()
            if (code == 0) {
               this.refreshShopNum()
            }
         },
         async getDetail() {
            this.$message.showLoading()
@@ -186,6 +207,11 @@
            this.$message.hideLoading()
         },
         toShopping() {
            uni.navigateTo({
               url: '/sub_pages/customer/shopping/shopping'
            })
         },
         openbrand() {
            uni.navigateTo({
               url: '/sub_pages/customer/shop/shop?id=' + (this.dto.id || '')
@@ -198,6 +224,21 @@
<style lang="scss" scoped>
   .trade-detail {
      background-color: #FFFFFF;
      .image-shop-number {
         width: 30rpx;
         height: 30rpx;
         background: #F20000;
         line-height: 30rpx;
         text-align: center;
         position: absolute;
         right: 0rpx;
         top: -6rpx;
         color: #FFFFFF;
         border-radius: 50%;
         font-size: 24rpx;
      }
      .trade-info-container {
         padding: 46rpx 30rpx;
@@ -368,8 +409,8 @@
            height: 80rpx;
            background: rgba(0, 0, 0, 0.42);
            border-radius: 50%;
            display:flex;
            display: flex;
            .icon-sc {
               width: 54rpx;
               height: 54rpx;
@@ -384,6 +425,8 @@
               margin: 0 auto;
               margin-top: 12rpx;
               display: inline-block;
               margin-left: 12rpx;
               position: relative;
            }