| | |
| | | <view class="order-quxiao"> |
| | | <view class="order-quxiao-btn" @click="show = true" v-if="userInfo.id === info.acceptMemberId && info.status ===2">取消订单</view> |
| | | <view class="order-quxiao-btn" @click="show = true" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 || info.status ===1|| info.status ===2)">取消订单</view> |
| | | <view class="order-quxiao-btn1" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 || info.status ===1|| info.status ===2)" @click="jumpEdit()">修改订单</view> |
| | | </view> |
| | | <view class="order-user" v-if="userInfo.id === info.releaseMemberId"> |
| | | <view class="order-user-info"> |
| | | <view class="user-info-l"> |
| | | <view class="user-info-l-image"> |
| | | <image v-if="info.acceptCoverImage" :src="info.acceptCoverImage" mode="widthFix"></image> |
| | | <image v-else src="/static/logo.png" mode="widthFix"></image> |
| | | <image v-else src="/static/icon/img@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="user-info-l-i"> |
| | | <view class="user-info-l-i-top">{{info.acceptName || '匿名'}}</view> |
| | | <view class="user-info-l-i-top"> |
| | | <text>{{info.acceptName || '匿名'}}</text> |
| | | <view class="user-info-l-i-top-jdf">接单方</view> |
| | | </view> |
| | | <view class="user-info-l-i-bottom"> |
| | | <view class="user-info-l-i-bottom-item"> |
| | | <text>评分:</text> |
| | |
| | | <view class="order-info-address"> |
| | | <image src="/static/icon/order_ic_time@2x.png" mode="widthFix"></image> |
| | | <view class="order-info-address-info"> |
| | | <text>{{info.startDate || ''}}-{{info.endDate || ''}}({{info.totalDays||0}}天)</text> |
| | | <text>{{info.startDate || ''}}{{' 至 '}}{{info.endDate || ''}}({{info.totalDays||0}}天)</text> |
| | | </view> |
| | | </view> |
| | | <view class="address" v-if="info.type===1 && wayList && wayList.length>0"> |
| | | <view class="address-xian"></view> |
| | | <view class="address-row" v-for="(item,index) in wayList" style="display: block;margin: 10px" :key="'bbb'+index"> |
| | | <view class="address-row" v-for="(item,index) in wayList" style="display: block;margin: 10px" :key="index"> |
| | | <image v-if="index === 0" src="/static/icon/ic_qidian@2x.png" mode="widthFix"></image> |
| | | <image v-if="index >0 && index < wayList.length-1" src="/static/icon/ic_jingguo@2x.png" mode="widthFix"></image> |
| | | <image v-if="index === wayList.length-1" src="/static/icon/ic_zhongdian@2x.png" mode="widthFix"></image> |
| | |
| | | <view class="order-ren-left"> |
| | | <view class="order-ren-left-img"> |
| | | <image v-if="info.releaseCoverImage" :src="info.releaseCoverImage" mode="widthFix"></image> |
| | | <image v-else src="/static/logo.png" mode="widthFix"></image> |
| | | <image v-else src="/static/icon/img@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <text>{{info.releaseName || '匿名'}}</text> |
| | | <view class="order-ren-left-tip">发单方</view> |
| | | <view class="order-ren-left-tip">业主</view> |
| | | </view> |
| | | <view class="order-ren-x"></view> |
| | | <view class="order-ren-lx" @click="contactPhone(info.releasePhone)"> |
| | |
| | | <text>订单信息</text> |
| | | </view> |
| | | <view class="order-info-list"> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.code"> |
| | | <text>订单编号:</text> |
| | | <text>{{info.code || ''}}</text> |
| | | </view> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.createTime"> |
| | | <text>下单时间:</text> |
| | | <text>{{info.createTime||'-'}}</text> |
| | | </view> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.acceptTime"> |
| | | <text>接单时间:</text> |
| | | <text>{{info.acceptTime||'-'}}</text> |
| | | </view> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.workStartTime"> |
| | | <text>开始时间:</text> |
| | | <text>{{info.workStartTime||'-'}}</text> |
| | | </view> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.finishTime"> |
| | | <text>完成时间:</text> |
| | | <text>{{info.finishTime||'-'}}</text> |
| | | </view> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.payTime"> |
| | | <text>支付时间:</text> |
| | | <text>{{info.payTime||'-'}}</text> |
| | | </view> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.payMethod && info.payMethod >= 0"> |
| | | <text>支付方式:</text> |
| | | <text>{{info.payMethod==0?'微信支付':'-'}}</text> |
| | | </view> |
| | | <view class="order-info-list-item"> |
| | | <view class="order-info-list-item" v-if="info.wxExternalNo"> |
| | | <text>交易单号:</text> |
| | | <text>{{info.wxExternalNo || '-'}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view style="width: 100%; height: calc(108rpx + env(safe-area-inset-bottom));"></view> |
| | | <view class="order-footer"> |
| | | <view class="order-footer-btn"> |
| | | <view style="width: 100%; height: calc(108rpx + env(safe-area-inset-bottom));" v-if="![99].includes(info.status)"></view> |
| | | <view class="order-footer" v-if="![99].includes(info.status)"> |
| | | <template v-if="(userInfo.id === info.releaseMemberId) && info.status ===2"> |
| | | <sunui-mverify hint="开始作业" @change="getaccept($event)"></sunui-mverify> |
| | | </template> |
| | | <view class="order-footer-btn" v-else> |
| | | <view class="order-footer-btn-a" @click="show = true" v-if="userInfo.id === info.acceptMemberId && info.status ===2">取消订单</view> |
| | | <view class="order-footer-btn-a" @click="show = true" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 || info.status ===1|| info.status ===2)">取消订单</view> |
| | | <view class="order-footer-btn-b" @click="show2=true" v-if="userInfo.id === info.releaseMemberId && (info.status ===4 && info.commentStatus!=1)">去评价</view> |
| | | <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId &&((info.status ===3 && info.type !==2)|| (info.status ===0 && info.type===2))">去支付</view> |
| | | <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 || info.status ===1|| info.status ===2)">修改订单</view> |
| | | <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && (info.isUpdate==1 && info.status ===2)">修改确认</view> |
| | | <view class="order-footer-btn-b" @click="show3 =true" v-if="userInfo.id === info.releaseMemberId && (info.status ===2)">开始作业</view> |
| | | <view class="order-footer-btn-b" v-if="userInfo.id !== info.releaseMemberId && (info.status ===1)">抢单</view> |
| | | <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId &&((info.status ===3 && info.type !==2)|| (info.status ===0 && info.type===2))" @click="show1 = true">完成并支付</view> |
| | | <view class="order-footer-btn-b" v-if="userInfo.id === info.releaseMemberId && (info.status ===0 || info.status ===1|| info.status ===2)" @click="jumpEdit()">修改订单</view> |
| | | <view class="order-footer-btn-b" @click="show5 =true" v-if="userInfo.id === info.acceptMemberId && (info.isUpdate==1 && info.status ===2)">修改确认</view> |
| | | <view class="order-footer-btn-b" @click="startJobs()" v-if="userInfo.id === info.releaseMemberId && (info.status ===2)">开始作业</view> |
| | | <view class="order-footer-btn-b" @click="show6 =true" v-if="userInfo.id !== info.releaseMemberId && (info.status ===1)">抢单</view> |
| | | </view> |
| | | <view style="width: 100%; height: env(safe-area-inset-bottom);"></view> |
| | | </view> |
| | |
| | | </u-modal> |
| | | <u-modal |
| | | title="温馨提示" |
| | | :show="show3" |
| | | :show="show4" |
| | | closeOnClickOverlay |
| | | showCancelButton |
| | | > |
| | | <view class="slot-content"> |
| | | 确认开始作业吗? |
| | | 确认取消订单吗? |
| | | </view> |
| | | <view slot="confirmButton" style="display: flex; justify-content: space-between; align-items: center; width: 100%;"> |
| | | <view class="btn1" @click="show3 = false">我再想想</view> |
| | | <view class="btn2" @click="beginDo">确认开始</view> |
| | | <view class="btn1" @click="show = false">我再想想</view> |
| | | <view class="btn2" @click="cancelDo">确认取消</view> |
| | | </view> |
| | | </u-modal> |
| | | <u-modal |
| | | title="温馨提示" |
| | | :show="show6" |
| | | closeOnClickOverlay |
| | | showCancelButton |
| | | > |
| | | <view class="slot-content"> |
| | | 确认抢单吗? |
| | | </view> |
| | | <view slot="confirmButton" style="display: flex; justify-content: space-between; align-items: center; width: 100%;"> |
| | | <view class="btn1" @click="show6 = false">我再想想</view> |
| | | <view class="btn2" @click="acceptDo">确认接单</view> |
| | | </view> |
| | | </u-modal> |
| | | <u-modal |
| | | title="温馨提示" |
| | | :show="show5" |
| | | closeOnClickOverlay |
| | | showCancelButton |
| | | > |
| | | <view class="slot-content"> |
| | | 是否同意订单修改内容? |
| | | </view> |
| | | <view slot="confirmButton" style="display: flex; justify-content: space-between; align-items: center; width: 100%;"> |
| | | <view class="btn1" @click="show5=false">我再想想</view> |
| | | <view style="width: 20rpx; height: 100%;"></view> |
| | | <view class="btn2" style="background-color: #f56c6c; color: #ffffff;" @click="confirmUpdDo(1)">不同意</view> |
| | | <view style="width: 20rpx; height: 100%;"></view> |
| | | <view class="btn2" @click="confirmUpdDo(0)">同意</view> |
| | | </view> |
| | | </u-modal> |
| | | <!-- 支付弹窗 --> |
| | |
| | | <image @click="show1 = false" src="/static/icon/ic_close@2x.png" mode="widthFix"></image> |
| | | </view> |
| | | <view class="zhifu-c"> |
| | | <view class="zhifu-c-info"> |
| | | 请确认金额并支付费用给 <text>莲花劳务公司</text> |
| | | <view class="zhifu-c-info" v-if="info.type !== 2"> |
| | | 请确认金额并支付费用给 <text>{{info.acceptName}}</text> |
| | | </view> |
| | | <view class="zhifu-c-info1">支付金额:</view> |
| | | <view class="zhifu-c-input"> |
| | | <image src="/static/icon/¥@2x.png" mode="widthFix"></image> |
| | | <input type="number" placeholder="请输入" /> |
| | | <input type="number" v-model="amount" :disabled="info.type === 2" placeholder="请输入" /> |
| | | </view> |
| | | </view> |
| | | <view class="zhifu-botton">确认支付</view> |
| | | <view class="zhifu-botton" @click="payment">确认支付</view> |
| | | </view> |
| | | </u-popup> |
| | | |
| | |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | import sunuiMverify from '@/components/sunui-mverify/sunui-mverify.vue'; |
| | | export default { |
| | | computed: { |
| | | ...mapState( ['userInfo']) |
| | |
| | | show2: false, |
| | | count: 5, |
| | | show3:false, |
| | | show4:false, |
| | | show5:false, |
| | | show6:false, |
| | | value:0, |
| | | wayList:[], |
| | | bgImg: require('@/static/image/bg_green@2x.png'), |
| | | id: null, |
| | | loading:false, |
| | | commentInfo:'', |
| | | info: {}, |
| | | info: {}, |
| | | amount: '' |
| | | }; |
| | | }, |
| | | onLoad(options) { |
| | |
| | | this.getOrderData() |
| | | }, |
| | | methods:{ |
| | | getaccept(e) { |
| | | if (!e.msg) return; |
| | | this.$u.api.begin({ orderId: this.info.id }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.getOrderData() |
| | | } |
| | | }) |
| | | }, |
| | | // 开始作业 |
| | | startJobs() { |
| | | this.$u.api.begin({ orderId: this.info.id }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.getOrderData() |
| | | } |
| | | }) |
| | | }, |
| | | // 修改 |
| | | jumpEdit() { |
| | | if (this.info.type === 0 && this.info.workType === 0) { |
| | | uni.navigateTo({ |
| | | url: `/pages/using-workers/using-workers?id=${this.info.id}` |
| | | }) |
| | | } else if (this.info.type === 0 && this.info.workType === 1) { |
| | | uni.navigateTo({ |
| | | url: `/pages/sorting/sorting?id=${this.info.id}` |
| | | }) |
| | | } else if (this.info.type === 0 && this.info.workType === 2) { |
| | | uni.navigateTo({ |
| | | url: `/pages/packaging-worker/packaging-worker?id=${this.info.id}` |
| | | }) |
| | | } else if (this.info.type === 1) { |
| | | uni.navigateTo({ |
| | | url: `/pages/freight/freight?id=${this.info.id}` |
| | | }) |
| | | } |
| | | }, |
| | | payment() { |
| | | var that = this |
| | | // 订餐 |
| | | if (this.info.type === 2) { |
| | | this.$u.api.reusePay({ |
| | | orderId: this.info.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | wx.requestPayment({ |
| | | timeStamp: res.data.object.timeStamp, |
| | | nonceStr: res.data.object.nonceStr, |
| | | package: res.data.object.packageVal, |
| | | signType: res.data.object.signType, |
| | | paySign: res.data.object.paySign, |
| | | success (res1) { |
| | | if (res1.errMsg = 'requestPayment:ok') { |
| | | that.show1 = false |
| | | uni.showToast({ title: '支付成功', icon: 'success', duration: 2000 }); |
| | | that.getOrderData() |
| | | } |
| | | }, |
| | | fail(err) { |
| | | console.log(err) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } else { |
| | | this.$u.api.doneOrder({ |
| | | orderId: this.info.id, |
| | | amount: Number(this.amount) * 100 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | wx.requestPayment({ |
| | | timeStamp: res.data.object.timeStamp, |
| | | nonceStr: res.data.object.nonceStr, |
| | | package: res.data.object.packageVal, |
| | | signType: res.data.object.signType, |
| | | paySign: res.data.object.paySign, |
| | | success (res1) { |
| | | if (res1.errMsg = 'requestPayment:ok') { |
| | | that.show1 = false |
| | | uni.showToast({ title: '支付成功', icon: 'success', duration: 2000 }); |
| | | that.getOrderData() |
| | | } |
| | | }, |
| | | fail(err) { |
| | | console.log(err) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | commentDo(){ |
| | | var that = this |
| | | var param = { info: that.commentInfo,level:that.value||0,orderId: this.id} |
| | |
| | | } |
| | | }) |
| | | }, |
| | | confirmUpdDo(){ |
| | | confirmUpdDo(status){ |
| | | var that = this |
| | | var param = {orderId: this.id} |
| | | this.$u.api.confirmUpdDo(param).then(res =>{ |
| | | var param = {orderId: this.id,status:status} |
| | | this.$u.api.confirmUpd(param).then(res =>{ |
| | | if(res.code ===200){ |
| | | that.show=false |
| | | uni.showToast({ title: '操作成功', icon: 'error', duration: 2000 }); |
| | | that.getOrderData() |
| | | that.show5=false |
| | | uni.showToast({ title: '确认成功', icon: 'error', duration: 2000 }); |
| | | if(status==1){ |
| | | uni.navigateBack({ delta: 1 }) |
| | | }else{ |
| | | that.getOrderData() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | |
| | | var param = {orderId: this.id} |
| | | this.$u.api.accept(param).then(res =>{ |
| | | if(res.code ===200){ |
| | | that.show=false |
| | | that.show6=false |
| | | uni.showToast({ title: '抢单成功', icon: 'error', duration: 2000 }); |
| | | that.getOrderData() |
| | | } |
| | |
| | | if(res.code ===200){ |
| | | that.show=false |
| | | uni.showToast({ title: '订单取消成功', icon: 'error', duration: 2000 }); |
| | | that.getOrderData() |
| | | if(that.userInfo.id !== that.info.releaseMemberId){ |
| | | uni.navigateBack({ delta: 1 }) |
| | | }else{ |
| | | that.getOrderData() |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | previemImg(src){ |
| | | uni.previewImage({ |
| | | current: src, // 当前显示图片的http链接 |
| | | urls: [src] // 需要预览的图片http链接列表 |
| | | }); |
| | | current: src, |
| | | urls: [src] |
| | | }); |
| | | }, |
| | | contactPhone(phone){ |
| | | if(phone !=null && phone!=''){ |
| | |
| | | if(res.code ===200){ |
| | | if(that.userInfo.id === res.data.releaseMemberId || that.userInfo.id === res.data.acceptMemberId ){ |
| | | that.info = res.data |
| | | that.amount = ((that.info.estimatedAccount || 0) / 100).toFixed(2) |
| | | if(that.info.wayInfo){ |
| | | that.wayList = JSON.parse(that.info.wayInfo) |
| | | } |
| | |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .order-footer-btn-a { |
| | | width: 334rpx; |
| | | flex: 1; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | |
| | | border: 1rpx solid #B2B2B2; |
| | | } |
| | | .order-footer-btn-b { |
| | | width: 334rpx; |
| | | flex: 1; |
| | | height: 88rpx; |
| | | line-height: 88rpx; |
| | | text-align: center; |
| | |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | .user-info-l-i-top { |
| | | font-weight: 400; |
| | | font-size: 30rpx; |
| | | color: #222222; |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | text { |
| | | font-weight: 400; |
| | | font-size: 30rpx; |
| | | color: #222222; |
| | | } |
| | | .user-info-l-i-top-jdf { |
| | | width: 96rpx; |
| | | height: 42rpx; |
| | | line-height: 42rpx; |
| | | text-align: center; |
| | | font-weight: 400; |
| | | font-size: 24rpx; |
| | | color: #FF7200; |
| | | border-radius: 8rpx; |
| | | border: 2rpx solid #FD9E24; |
| | | margin-left: 10rpx; |
| | | } |
| | | } |
| | | .user-info-l-i-bottom { |
| | | display: flex; |
| | |
| | | border-radius: 34rpx; |
| | | border: 1rpx solid #B2B2B2; |
| | | } |
| | | .order-quxiao-btn1 { |
| | | width: 160rpx; |
| | | height: 64rpx; |
| | | line-height: 64rpx; |
| | | text-align: center; |
| | | border-radius: 34rpx; |
| | | font-weight: 400; |
| | | font-size: 28rpx; |
| | | color: #00BC12; |
| | | margin-left: 20rpx; |
| | | border: 1rpx solid #00BC12; |
| | | } |
| | | } |
| | | } |
| | | .address { |