| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="user"> |
| | | <view class="user" v-if="userType!=1"> |
| | | <view class="user-jxa"> |
| | | <view class="user-jxa-title"> |
| | | <image src="/static/icon/ic_address@2x1.png" mode="widthFix"></image> |
| | | <text>{{info.shopInfo.name||''}}</text> |
| | | </view> |
| | | <view class="user-jxa-lx"> |
| | | <view class="user-jxa-lx" @click="contact( info.shopInfo.phone)"> |
| | | <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image> |
| | | <text v-if="userType==1" @click="contact(info.linkphone)">联系客户</text> |
| | | <text v-if="info.orderStatus!=0 && userType==0" @click="contact(info.shopInfo.phone || '')">联系经销商</text> |
| | | <text > 联系经销商</text> |
| | | </view> |
| | | </view> |
| | | <view class="user-jxtime"> |
| | | <image class="user-jxtime-icon" src="/static/icon/ic_openinghours@2x.png" mode="widthFix"></image> |
| | | <text>营业时间:{{info.shopInfo.startTime || ''}}</text> |
| | | </view> |
| | | <view class="user-jxtime"> |
| | | <view class="user-jxtime" @click="jumpMap()"> |
| | | <image class="user-jxtime-icon" src="/static/icon/ic_shopaddress@2x.png" mode="widthFix"></image> |
| | | <text>{{info.shopInfo.addr || ''}}</text> |
| | | <image class="user-jxtime-to" src="/static/icon/ic_ar2@2x.png" mode="widthFix"></image> |
| | |
| | | <view class="user-qrcode-btn" @click="copyText(info.exchangeCode)">复制自提码</view> |
| | | </view> |
| | | </view> |
| | | <view class="user" v-if="info.receiveType!=1"> |
| | | <view class="user" v-if="userType==1"> |
| | | <view class="user-top"> |
| | | <view class="user-icon"> |
| | | <image src="/static/icon/ic_location@2x.png" mode="widthFix"></image> |
| | | <image :src="info.member && info.member.imgFullUrl? info.member.imgFullUrl:'/static/icon/default.png'" mode="widthFix"></image> |
| | | </view> |
| | | <view class="user-info"> |
| | | <view class="user-info-a"> |
| | | <text>{{info.linkename || ''}}</text> |
| | | <text>{{info.linkephone || ''}}</text> |
| | | <text>{{info.linkName || ''}}</text> |
| | | <view class="user-jxa-lx" @click="contact( info.linkPhone )"> |
| | | <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image> |
| | | <text > 联系客户</text> |
| | | </view> |
| | | </view> |
| | | <view class="user-info-b"> |
| | | {{info.addr||''}} |
| | | <!-- <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image> --> |
| | | <text>{{info.linkPhone || ''}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="user-xian"></view> |
| | | <view class="user-kd"> |
| | | <view class="user-remark" v-if="info.memberInfo"> |
| | | <text>订单备注:</text> |
| | | <text>{{info.memberInfo || ''}}</text> |
| | | </view> |
| | | <view class="user-xian" v-if="info.receiveType!=1"></view> |
| | | <view class="user-kd" v-if="info.receiveType!=1"> |
| | | <image src="/static/icon/ic_location@2x.png" mode="widthFix"></image> |
| | | <text>{{info.linkAddress || ''}}</text> |
| | | </view> |
| | | <view class="user-kd" v-if="info.receiveType!=1&& info.kdName && info.kdCode"> |
| | | <image src="/static/icon/ic_wuliu@2x.png" mode="widthFix"></image> |
| | | <text>{{info.kdName || ''}}|{{info.kdCode || ''}}</text> |
| | | <image class="image2" src="/static/icon/ic_cppy@2x.png" @click="copyText(info.kdCode )" mode="widthFix"></image> |
| | | </view> |
| | | </view> |
| | | <view class="shop"> |
| | | <view class="shop-info" style="margin: 0;" v-if="info.status ==6"> |
| | | <view class="user" v-if="userType!=1 &&info.memberInfo" > |
| | | <view class="user-kd" > |
| | | <text>订单备注:</text> |
| | | <text>{{info.memberInfo || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="shop" v-if="info.orderStatus ==6"> |
| | | <view class="shop-info" style="margin: 0;" > |
| | | <view class="shop-info-item" style="margin-bottom: 12rpx;"> |
| | | <view class="shop-info-item-label" style="color: #222222; font-size: 30rpx; font-weight: 600;">退款金额</view> |
| | | <view class="shop-info-item-price xfk"> |
| | |
| | | <view :class="'shop-top-tips '+(info.receiveType==1?'shop-top-tips-a':'shop-top-tips-b' )">{{info.receiveType==1?'自提':'配送'}}</view> |
| | | <text>{{info.shopInfo.name || ''}}</text> |
| | | </view> |
| | | <view class="b"> |
| | | <view class="b-item" v-for="(item, index) in (info.goodsorderDetailList||[])" :key="index"> |
| | | <view class="b-item-image"> |
| | | <!-- <image v-if="item.imgurl!=null" :src="item.imgurl" mode="widthFix"></image> |
| | | --> <image src="/static/icon/default2.png" mode="widthFix"></image> |
| | | <view class="b" v-if="info.goodsorderDetailList && info.goodsorderDetailList.length"> |
| | | <view class="b-item" v-for="(item, index) in info.goodsorderDetailList" :key="index" @click="jumpGoodsDetail(item,index)" > |
| | | <view class="b-item-image" > |
| | | <image :src="item.imgurl?item.imgurl:'/static/icon/default2.png'" mode="widthFix"></image> |
| | | </view> |
| | | <view class="b-item-title"> |
| | | <view class="b-item-title" > |
| | | <view class="b-item-title-val">{{item.name || ''}}</view> |
| | | <view class="b-item-jia"> |
| | | <text>¥{{(item.price || 0).toFixed(2)}}</text> |
| | |
| | | <text>{{info.createDate || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item"> |
| | | <view class="xinxi-list-item" v-if="info.shopInfo!=null && info.shopInfo.id!=null"> |
| | | <view class="xinxi-list-item-label">经 销 商:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.shopInfo.name || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item" v-if="info.shopInfo!=null && info.shopInfo.id!=null"> |
| | | <view class="xinxi-list-item-label">联系电话:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.shopInfo.phone || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item" v-if="info.payDate!=null"> |
| | | <view class="xinxi-list-item-label">支付时间:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.payDate || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item" v-if="info.payStatus != 0"> |
| | | <view class="xinxi-list-item-label">支付方式:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.payMethod==0?'微信支付':'积分抵扣'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item" v-if="info.payOrderId"> |
| | | <view class="xinxi-list-item-label">交易流水号:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.payOrderId || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item" v-if="info.cancelDate!=null"> |
| | | <view class="xinxi-list-item-label">取消时间:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.cancelDate || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item" v-if="info.doneDate!=null"> |
| | | <view class="xinxi-list-item-label">完成时间:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.doneDate || ''}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="xinxi-list-item" v-if="1==2"> |
| | | <view class="xinxi-list-item-label">订单备注:</view> |
| | | <view class="xinxi-list-item-right"> |
| | | <text>{{info.memberInfo||'-'}}</text> |
| | |
| | | <view style="width: 100%; height: calc(100rpx + env(safe-area-inset-bottom));"></view> |
| | | </view> |
| | | <view class="footer"> |
| | | <view class="caozuo"> |
| | | <view class="caozuo-item">取消订单</view> |
| | | <view class="caozuo-item" style="border: 1rpx solid #004096; color: #004096;">继续支付</view> |
| | | <view class="caozuo" v-if="userType!=1"> |
| | | <view class="caozuo-item" v-if="info.orderStatus==0 || info.orderStatus ==1" @click="cancelOrder()"> 取消订单</view> |
| | | <view class="caozuo-item" @click="deleteOrder()" v-if="info.orderStatus==4"> 删除订单</view> |
| | | <view class="caozuo-item" @click="payOrder()" v-if=" info.orderStatus==0" style="border: 1rpx solid #004096; color: #004096;">继续支付</view> |
| | | <view class="caozuo-item" @click="doneOrder()" v-if=" info.orderStatus==2" style="border: 1rpx solid #004096; color: #004096;">确认收货</view> |
| | | </view> |
| | | <view class="caozuo" v-if="userType==1"> |
| | | <view class="caozuo-item" @click="hexiaoOrder()" v-if=" info.orderStatus==1 && info.receiveType ==1" style="border: 1rpx solid #004096; color: #004096;">自提核销</view> |
| | | </view> |
| | | <view style="width: 100%; height: env(safe-area-inset-bottom);"></view> |
| | | </view> |
| | | <!-- 确认收货 --> |
| | | <u-popup :show="show" round="15" :safeAreaInsetBottom="false" mode="center"> |
| | | <u-popup :show="showDone" round="15" :safeAreaInsetBottom="false" mode="center"> |
| | | <view class="tc"> |
| | | <view class="tc-contemt"> |
| | | <view class="tc-contemt-title">确认收货提醒</view> |
| | |
| | | </view> |
| | | </view> |
| | | <view class="tc-btn"> |
| | | <view class="tc-btn-item" @click="show = false">取消</view> |
| | | <view class="tc-btn-item" style="color: #004096;">确认收货</view> |
| | | <view class="tc-btn-item" @click="showDone = false; ">取消</view> |
| | | <view class="tc-btn-item" style="color: #004096;" @click="doneOrderDo()">确认收货</view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | <!-- 取消订单 --> |
| | | <u-popup :show="showCancel" round="15" :safeAreaInsetBottom="false" mode="center"> |
| | | <view class="tc"> |
| | | <view class="tc-contemt"> |
| | | <view class="tc-contemt-title">确定取消提醒</view> |
| | | <view class="tc-contemt-nr"> |
| | | 您确认取消该订单吗? |
| | | </view> |
| | | </view> |
| | | <view class="tc-btn"> |
| | | <view class="tc-btn-item" @click="showCancel = false; ">我再想想</view> |
| | | <view class="tc-btn-item" style="color: red;" @click="cancelOrderDo">确认取消</view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | <!-- 删除订单 --> |
| | | <u-popup :show="showDelete" round="15" :safeAreaInsetBottom="false" mode="center"> |
| | | <view class="tc"> |
| | | <view class="tc-contemt"> |
| | | <view class="tc-contemt-title">确认删除提醒</view> |
| | | <view class="tc-contemt-nr"> |
| | | 您确认删除该订单吗? |
| | | </view> |
| | | </view> |
| | | <view class="tc-btn"> |
| | | <view class="tc-btn-item" @click="showDelete = false; ">我再想想</view> |
| | | <view class="tc-btn-item" style="color: red;" @click="deleteOrderDo">确认删除</view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | |
| | | data() { |
| | | return { |
| | | show: false, |
| | | showDone:false, |
| | | showCancel:false, |
| | | showDelete:false, |
| | | showPay:false, |
| | | qrCodeBase64:'', |
| | | id:null, |
| | | userType:0, |
| | |
| | | }else{ |
| | | this.getUserDetail() |
| | | } |
| | | this.showDone=false |
| | | this.showCancel=false |
| | | this.showDelete=false |
| | | this.showPay=false |
| | | }, |
| | | onLoad(options) { |
| | | this.id = options.id |
| | |
| | | this.qrCodeUrl='' |
| | | }, |
| | | methods:{ |
| | | copyText(text) { |
| | | try { |
| | | wx.setClipboardData({ |
| | | data: text||' ', |
| | | success: function () { |
| | | uni.showToast({ title: '复制成功' }); |
| | | }, |
| | | fail: function () { |
| | | uni.showToast({ title: '复制失败', icon: 'none' }); |
| | | } |
| | | }); |
| | | } catch (err) { |
| | | console.error('复制失败', err); |
| | | uni.showToast({ title: '复制失败', icon: 'none' }); |
| | | } |
| | | }, |
| | | hexiaoOrder(item){ |
| | | uni.navigateTo({ |
| | | url:'/pagesA/pages/write-off-a/write-off-a?id='+this.id |
| | | }) |
| | | }, |
| | | cancelOrder(item){ |
| | | this.showCancel = !this.showCancel |
| | | }, |
| | | deleteOrder(item){ |
| | | this.showDelete = !this.showDelete |
| | | }, |
| | | payOrder(item){ |
| | | }, |
| | | doneOrder(item){ |
| | | this.showDone = !this.showDone |
| | | }, |
| | | async doneOrderDo(){ |
| | | if(this.userType == 1 ) { |
| | | return |
| | | } |
| | | var that =this |
| | | let res = await this.$u.api.affirmOrder({ orderId: this.info.orderId }); |
| | | if (res.code === 200 ) { |
| | | //修改订单状态 |
| | | this.info.orderStatus = 3 |
| | | uni.$emit('updateOrder',{info:this.info,delete:0}) |
| | | await this.getUserDetail() |
| | | this.doneOrder() |
| | | }else{ |
| | | /* uni.showToast({ |
| | | title:res.message||'确定收货失败!', |
| | | icon:'error' |
| | | }) */ |
| | | } |
| | | }, |
| | | async cancelOrderDo(){ |
| | | if(this.userType == 1 ) { |
| | | return |
| | | } |
| | | var that =this |
| | | let res = await that.$u.api.cancelOrder({ orderId: this.info.orderId }); |
| | | if (res.code === 200 ) { |
| | | this.info.orderStatus = 4 |
| | | uni.$emit('updateOrder',{info:this.info,delete:0}) |
| | | await this.getUserDetail() |
| | | this.cancelOrder() |
| | | }else{ |
| | | /* uni.showToast({ |
| | | title:res.message||'取消订单失败!', |
| | | icon:'error' |
| | | }) */ |
| | | } |
| | | }, |
| | | async deleteOrderDo(){ |
| | | if(this.userType == 1 ) { |
| | | return |
| | | } |
| | | var that =this |
| | | let res = await that.$u.api.delOrder({ orderId: this.info.orderId }); |
| | | if (res.code === 200 ) { |
| | | uni.$emit('updateOrder',{info:this.info,delete:1}) |
| | | uni.navigateBack({delta:1}) |
| | | }else{ |
| | | /* uni.showToast({ |
| | | title:res.message||'删除订单失败!', |
| | | icon:'error' |
| | | }) */ |
| | | } |
| | | }, |
| | | jumpMap(){ |
| | | |
| | | }, |
| | | copyText(text) { |
| | | try { |
| | | wx.setClipboardData({ |
| | | data: text||' ', |
| | | success: function () { |
| | | uni.showToast({ title: '复制成功' }); |
| | | }, |
| | | fail: function () { |
| | | uni.showToast({ title: '复制失败', icon: 'none' }); |
| | | } |
| | | }); |
| | | } catch (err) { |
| | | console.error('复制失败', err); |
| | | uni.showToast({ title: '复制失败', icon: 'none' }); |
| | | } |
| | | }, |
| | | async getQrcodeByStr(){ |
| | | try { |
| | | const ocanvas = uni.createOffscreenCanvas({ type: "2d" }); |
| | | const qrCodeBase64 = await QRCode.toDataURL(ocanvas,this.info.exchangeCode, { |
| | | scale: 1, // 二维码的缩放比例,可以根据需要调整 |
| | | width: 300, // 二维码的宽度,可以根据需要调整 |
| | | margin: 1 // 二维码周围的空白边距,可以根据需要调整 |
| | | }); |
| | | this.qrCodeBase64 =qrCodeBase64 |
| | | console.log("==================this.info.exchangeCode1:",qrCodeBase64) |
| | | } catch (err) { |
| | | uni.showToast({ |
| | | title:'创建二维码失败', |
| | | icon:'error' |
| | | }) |
| | | } |
| | | try { |
| | | const ocanvas = uni.createOffscreenCanvas({ type: "2d" }); |
| | | const qrCodeBase64 = await QRCode.toDataURL(ocanvas,this.info.exchangeCode, { |
| | | scale: 1, // 二维码的缩放比例,可以根据需要调整 |
| | | width: 300, // 二维码的宽度,可以根据需要调整 |
| | | margin: 1 // 二维码周围的空白边距,可以根据需要调整 |
| | | }); |
| | | this.qrCodeBase64 =qrCodeBase64 |
| | | } catch (err) { |
| | | uni.showToast({ |
| | | title:'生成自提码失败', |
| | | icon:'error' |
| | | }) |
| | | } |
| | | }, |
| | | contact(phone){ |
| | | if(phone !=null && phonee!=''){ |
| | | console.log(phone) |
| | | if(phone !=null && phone!=''){ |
| | | uni.makePhoneCall({ |
| | | phoneNumber: phone |
| | | }) |
| | | } |
| | | }, |
| | | async getShopDetail(index){ |
| | | async getShopDetail(){ |
| | | var that =this |
| | | let res = await that.$u.api.shopOrderDetail({orderId:this.id,tokenType:1 }) |
| | | if (res.code === 200) { |
| | | this.info = res.data |
| | | this.info.shopInfo = this.info.shopInfo||{} |
| | | |
| | | this.getQrcodeByStr() |
| | | uni.$emit('updateOrder',{info:this.info,delete:0}) |
| | | } |
| | | }, |
| | | async getUserDetail(index){ |
| | | async getUserDetail(){ |
| | | var that =this |
| | | let res = await that.$u.api.shopOrderDetail({orderId:this.id,tokenType:1 }) |
| | | let res = await this.$u.api.orderDetail({orderId:this.id }) |
| | | if (res.code === 200) { |
| | | this.info = res.data |
| | | this.getQrcodeByStr() |
| | | uni.$emit('updateOrder',{info:this.info,delete:0}) |
| | | } |
| | | }, |
| | | checkShopLogin(){ |
| | |
| | | jumpBack(){ |
| | | uni.navigateBack({ delta: 1 }); |
| | | }, |
| | | jumpGoodsDetail(item){ |
| | | uni.navigateTo({ |
| | | url: '/pages/details/details?id='+item.id |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | align-items: flex-start; |
| | | .user-icon { |
| | | flex-shrink: 0; |
| | | width: 48rpx; |
| | | height: 48rpx; |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | | border-radius: 50%; |
| | | margin-right: 22rpx; |
| | | image { |
| | | width: 100%; |
| | | } |
| | | |
| | | } |
| | | .user-info { |
| | | flex: 1; |
| | |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | text { |
| | | &:nth-child(1) { |
| | | font-weight: 500; |
| | |
| | | margin-left: 14rpx; |
| | | } |
| | | } |
| | | .user-jxa-lx { |
| | | right:0; |
| | | |
| | | display: flex; |
| | | align-items: center; |
| | | image { |
| | | width: 26rpx; |
| | | height: 26rpx; |
| | | margin-right: 10rpx; |
| | | } |
| | | text { |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | .user-info-b { |
| | | width: 100%; |
| | |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | margin-top: 18rpx; |
| | | image { |
| | | width: 30rpx; |
| | | height: 30rpx; |
| | | margin-right: 10rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | height: 1rpx; |
| | | margin: 30rpx 0; |
| | | background-color: #E5E5E5; |
| | | } |
| | | .user-remark{ |
| | | width: 100%; |
| | | padding: 20rpx 10rpx; |
| | | margin: 30rpx 30rpx; |
| | | background: #F8F9FB; |
| | | border-radius: 8rpx; |
| | | text { |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | color: #333333; |
| | | } |
| | | } |
| | | .user-kd { |
| | | width: 100%; |
| | |
| | | text { |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | color: #333333; |
| | | color: #333333; |
| | | } |
| | | .image2 { |
| | | width: 24rpx; |
| | | height: 24rpx; |
| | | margin-left: 12rpx; |
| | | } |
| | | } |
| | | } |