xuxueyang
2024-07-25 d714523145c5e3d93ac7054870368674f525444f
update 订单信息
已修改2个文件
239 ■■■■■ 文件已修改
pages/order/order-detail.vue 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
plugins/message.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/order-detail.vue
@@ -3,7 +3,14 @@
  data() {
    return {
      id: '',
      dto: {}
      dto: {},
      type: '',
      // #ifdef PUB_CUSTOMER
      type: 'customer',
      // #endif
      // #ifdef PUB_PARTNER
      type: 'partner',
      // #endif
    };
  },
  onLoad(options) {
@@ -27,7 +34,7 @@
    },
    async getDetail() {
      this.$message.showLoading()
      const {code, data} = this.$http.request('get', '/api/customer/order/list/view', {
      const {code, data} = this.$http.request('get', `/api/${type}/order/list/view```, {
        params: {
          id: this.id
        }
@@ -42,7 +49,7 @@
    },
    async getItemList() {
      this.$message.showLoading()
      const {code, data} = this.$http.request('get', '/api/customer/order/item/list', {
      const {code, data} = this.$http.request('get', `/api/${type}/order/item/list`, {
        params: {
          id: this.id
        }
@@ -52,8 +59,95 @@
        this.list = data || []
      }
    },
    buttonClick(buttontype) {
    async buttonClick(buttontype) {
      switch (buttontype) {
        case 'refund': {
          await this.$message.confirm('是否确定申请退款')
          // 发送请求
          this.$message.showLoading()
          const {code} = await this.$http.request('post', '/api/customer/order/refund', {
            data: {
              id: this.id,
              evaluate: res.content
            }
          })
          this.$message.hideLoading()
          if (code === 0) {
            this.getDetail()
          }
        }
          break
        case 'confirm': {
          await this.$message.confirm('是否确定收货')
          // 发送请求
          this.$message.showLoading()
          const {code} = await this.$http.request('get', '/api/customer/order/receive/confirm', {
            params: {
              id: this.id,
            }
          })
          this.$message.hideLoading()
          if (code === 0) {
            this.getDetail()
          }
        }
          break
        case 'payAgain': {
          await this.$message.confirm('是否确定重新')
          // 发送请求
          this.$message.showLoading()
          const {code, data} = await this.$http.request('get', '/api/customer/order/payAgain', {
            params: {
              id: this.id,
            }
          })
          this.$message.hideLoading()
          if (code === 0) {
            //微信接口
            let that = this
            wx.requestPayment({
              ...data,
              async success(res) {
                console.log('pay success', res)
                that.$message.showToast('支付成功')
                setTimeout(() => {
                  that.getDetail()
                }, 200)
              },
              fail(err) {
                console.error('pay fail', err)
                that.$message.showToast('支付失败')
              }
            })
          }
        }
          break
        case 'evaluate': {
          const res = await this.$message.confirm('请输入评价信息', {
            editable: true
          })
          if (res.content && res.confirm) {
            // 发送请求
            this.$message.showLoading()
            const {code} = await this.$http.request('post', '/api/customer/order/evaluate', {
              data: {
                id: this.id,
                evaluate: res.content
              }
            })
            this.$message.hideLoading()
            if (code === 0) {
              this.getDetail()
            }
          }
        }
          break
        default:
          break
      }
    }
  },
}
@@ -88,20 +182,66 @@
        </view>
      </view>
    </view>
    <view class="flower-info m-b-20" v-for="(item,index) of list" :key="index">
    <view class="flower-info m-b-20" v-for="(item,index) of list"
          :key="index">
      <view class="supplier-name">
        <image class="icon-dp" src="/static/common/icon-dp.png"></image>
        {{ item.supplierName }}
      </view>
      <view class="flex">
        <image class="flower-img img100 m-r-6"
               :src="item.flowerCover" @click="previewImg(item.flowerCover)">
        </image>
        <view class="flex1">
          <view class=" flex">
            <view class="title">{{ item.flowerName }}<span class="level">{{ item.flowerLevelStr }}</span></view>
            <!--            <view class="m-l-a m-r-0">-->
            <!--              {{item.flowerCategory || '-'}}-->
            <!--            </view>-->
          </view>
          <view class="each-list">
            <view class="each-item">
              <view class="label">颜色</view>
              <view class="value">{{ item.flowerColor || '-' }}</view>
            </view>
            <view class="each-item">
              <view class="label">规格</view>
              <view class="value">{{ item.flowerUnit || '-' }}</view>
            </view>
            <view class="each-item">
              <view class="label">数量</view>
              <view class="value">{{ item.num || 0 }}</view>
            </view>
            <view class="each-item">
              <view class="label">售价</view>
              <view class="value">¥{{ item.price || '-' }}</view>
            </view>
            <view class="each-item">
              <view class="label">总金额</view>
              <view class="value t-red">¥{{ item.total || '-' }}</view>
            </view>
          </view>
        </view>
      </view>
    </view>
    <view class="info-container">
      <view class="form-item">
        <view class="label">订单编号:</view>
        <view class="value">{{ dto.orderNo || '-' }}</view>
        <view class="button m-l-a m-r-0" @click="copyTxt(dto.orderNo)">复制</view>
        <view class="button m-l-a m-r-0"
              @click="copyTxt(dto.orderNo)">复制
        </view>
      </view>
      <view class="form-item">
        <view class="label">下单日期:</view>
        <view class="value">{{ dto.paymentTime || '-' }}</view>
      </view>
      <view class="form-item" v-if="dto.cancelTime&&(dto.status==='CANCEL')">
      <view class="form-item" v-if="dto.cancelTime&&(dto.status==='CANCEL'||dto.status==='REFUND')">
        <view class="label">取消时间:</view>
        <view class="value">{{ dto.cancelTime || '-' }}</view>
      </view>
@@ -182,9 +322,24 @@
      </view>
    </view>
    <view class="button-space"></view>
    <view class="buttons-bottom">
      <view class="button button-1" @click="buttonClick('refund')">申请退款</view>
    <view class="buttons-bottom flex">
      <view class="button button-1"
            @click="buttonClick('refund')" v-if="dto.status ==='CANCEL'">申请退款
      </view>
      <view class="button button-1" @click="buttonClick('confirm')"
            v-if="dto.status ==='RECEIVE'"> 确认收货
      </view>
      <view class="button button-1" @click="buttonClick('payAgain')"
            v-if=" dto.status === 'PENDING'"> 重新支付
      </view>
      <view class="button button-1" @click="buttonClick('evaluate')"
            v-if=" dto.status === 'EVALUATE'"> 评价
      </view>
    </view>
    <!--
      <view class="button button-1" @click = "buttonClick('payAgain')" > 查询退款 < /view>-->
  </view>
</template>
@@ -307,6 +462,70 @@
    background: #FFFFFF;
    border-radius: 8rpx;
    .supplier-name {
      border-bottom: 2rpx solid #EEEEEE;
      font-weight: 600;
      font-size: 28rpx;
      color: #000000;
      line-height: 40rpx;
    }
    .title {
      font-weight: 600;
      font-size: 28rpx;
      color: #000000;
      line-height: 40rpx;
      .level {
        font-weight: 400;
        font-size: 28rpx;
        color: #20613D;
        line-height: 40rpx;
        margin-left: 20rpx;
      }
    }
    .flower-img {
      width: 128rpx;
      height: 118rpx;
      min-width: 128rpx;
      min-height: 118rpx;
    }
    .each-list {
      display: flex;
      flex-wrap: wrap;
      margin-top: 6rpx;
      .each-item {
        min-width: 30%;
        max-width: 40%;
        text-align: center;
        margin-left: 0rpx;
        margin-right: auto;
        display: flex;
        .label {
          font-weight: 400;
          font-size: 24rpx;
          color: #666666;
          text-align: left;
          padding-right: 10rpx;
        }
        .label::after {
          content: ": "
        }
        .value {
          font-weight: 400;
          font-size: 24rpx;
          color: #666666;
        }
      }
    }
  }
}
plugins/message.js
@@ -74,7 +74,7 @@
                ...options,
                success: (res) => {
                    if (res.confirm) {
                        resolve()
                        resolve(res)
                    }
                    if (res.cancel) {
                        reject()