Browse Source

修复订单页面bug

master
longjieli 8 months ago
parent
commit
3771e83c28
7 changed files with 146 additions and 93 deletions
  1. +9
    -17
      service-uniapp-client/components/review/reviewList/reviewList.vue
  2. +56
    -0
      service-uniapp-client/mixins/order.js
  3. +32
    -71
      service-uniapp-client/pages/index/order.vue
  4. +1
    -1
      service-uniapp-client/pages/mine/collect.vue
  5. +38
    -2
      service-uniapp-client/pages/order/orderDetail.vue
  6. +4
    -2
      service-uniapp-client/pages/order/payOrder.vue
  7. +6
    -0
      service-uniapp-client/pages/technician/selectTechnician.vue

+ 9
- 17
service-uniapp-client/components/review/reviewList/reviewList.vue View File

@ -21,7 +21,7 @@
</view> </view>
<view class="mark"> <view class="mark">
<van-rate v-model="item.serviceNum" size="25rpx" color="#FCD618" /> <van-rate v-model="item.serviceNum" size="25rpx" color="#FCD618" />
<text class="desc">{{ item.labelText }}</text>
<text class="desc">{{ getSatisfaction(item.serviceNum) }}</text>
</view> </view>
<view class="tags"> <view class="tags">
<view class="tag" v-for="(t) in item.labelText.split(',')"> <view class="tag" v-for="(t) in item.labelText.split(',')">
@ -53,26 +53,18 @@
list: { list: {
type: Array, type: Array,
default: function() { default: function() {
return [{
userName: 'IYU466930948',
peviewTime: '2024.01.18',
tag: '皇家尊享spa',
agrenn: '非常满意',
content: '经常久坐肩颈很不舒服,下单了#皇家尊享spa预约的技师是#李晓纯,下单还不到20分钟就过来了,等待时间比较快,手法力道真的很专业,服务态度也不错,顺便还给我普及了穴位知识,真的很满意',
num: 450
}, {
userName: 'IYU466930948',
peviewTime: '2024.01.18',
tag: '皇家尊享spa',
agrenn: '非常满意',
content: '经常久坐肩颈很不舒服,下单了#皇家尊享spa预约的技师是#李晓纯,下单还不到20分钟就过来了,等待时间比较快,手法力道真的很专业,服务态度也不错,顺便还给我普及了穴位知识,真的很满意',
num: 450
}, ]
return []
} }
} }
}, },
methods: { methods: {
//
getSatisfaction(num){
console.log(num);
let satisfaction = ['不满意','不满意','较满意','满意','非常满意']
return satisfaction[num - 1]
}
} }
} }
</script> </script>


+ 56
- 0
service-uniapp-client/mixins/order.js View File

@ -0,0 +1,56 @@
import { showConfirmDialog } from 'vant';
export default {
methods : {
//再来一单
moreOrder(projectId,successCallback) {
this.$api('getProjectDetail', {
id: projectId
}, res => {
if (res.code == 200) {
successCallback && successCallback(res,projectId)
}
})
},
//立即评价
toEvaluate(id,projectId) {
uni.navigateTo({
url: '/pages/order/evaluate?id=' + id + '&projectId=' + projectId
})
},
//取消订单
calcelOrder(orderId,successCallback) {
showConfirmDialog({
title: '取消订单',
message: '确认取消订单?',
}).then(() => {
this.$api('cancelVipOrder', {
orderId
}, res => {
if (res.code == 200) {
successCallback && successCallback()
}
})
}).catch(() => {});
},
//立即支付
toPayOrder(item) {
this.$api('immediatelyPay', {
addressId: item.addressId,
couponId: item.couponId,
orderId: item.id,
payType: item.payType,
remark: item.remark,
serviceTime: item.serviceTime
}, res => {
if (res.code == 200) {
this.$wxPay(res, this.getOrderList, this.getOrderList)
}
})
},
}
}

+ 32
- 71
service-uniapp-client/pages/index/order.vue View File

@ -54,24 +54,24 @@
</view> </view>
<view class="bottom"> <view class="bottom">
<view @click.stop="toPayOrder(item)" class="b1" v-if="item.state == 0">
立即付款
</view>
<view @click.stop="calcelOrder(item.id)" class="b1" v-if="item.state == 1">
<view @click.stop="calcelOrder(item.id,cancelSuccess)" class="b1" v-if="item.state == 0">
取消订单 取消订单
</view> </view>
<view class="b2" @click.stop="toEvaluate()" v-if="item.state == 0 && item.type == 0">
微信支付
</view>
<view class="b2" @click.stop="toEvaluate()" v-if="item.state == 0 && item.type == 1">
余额支付
<view @click.stop="toPayOrder(item)" class="b2" v-if="item.state == 0">
立即付款
</view> </view>
<view class="b1" @click.stop="moreOrder(item)" v-if="item.state == 3">
<!-- <view @click.stop="toPayOrder(item)" class="b2" v-if="item.state == 2">
立即确认
</view> -->
<view class="b1" @click.stop="moreOrder(item.projectId,toPlaceorder)" v-if="item.state == 3">
再来一单 再来一单
</view> </view>
<view class="b2" @click.stop="toEvaluate(item)" v-if="item.state == 3 && item.jsEvaluated == 0">
<view class="b2" @click.stop="toEvaluate(item.id,item.projectId)" v-if="item.state == 3">
立即评价 立即评价
</view> </view>
<view class="b2" @click.stop="moreOrder(item.projectId,toPlaceorder)" v-if="item.state == 4">
再来一单
</view>
</view> </view>
</view> </view>
@ -88,11 +88,13 @@
showConfirmDialog showConfirmDialog
} from 'vant'; } from 'vant';
import Position from '@/utils/position.js' import Position from '@/utils/position.js'
import order from '@/mixins/order.js'
export default { export default {
components: { components: {
mNavbar, mNavbar,
}, },
mixins: [order],
data() { data() {
return { return {
tabs: [{ tabs: [{
@ -114,7 +116,7 @@
name: '已取消' name: '已取消'
} }
], ],
active: this.$route.query.active || 0,
active: this.$route.query.active ? parseInt(this.$route.query.active) : 0,
queryParams: { queryParams: {
state: -1, state: -1,
pageNo: 1, pageNo: 1,
@ -126,22 +128,21 @@
} }
}, },
onShow() { onShow() {
this.getOrderList(-1)
this.getOrderList()
}, },
methods: { methods: {
// //
getOrderList() { getOrderList() {
this.queryParams.state = this.active - 1 > -2 ? this.active - 1 : -1
this.$api('getOrderList', this.queryParams, res => { this.$api('getOrderList', this.queryParams, res => {
if (res.code == 200) { if (res.code == 200) {
if (res.code == 200) {
this.orderList = res.result.records;
} else {
this.finished = true
}
this.orderList = res.result.records;
if (this.queryParams.pageSize > res.result.total) { if (this.queryParams.pageSize > res.result.total) {
this.finished = true this.finished = true
} }
this.loading = false this.loading = false
}else{
this.finished = true
} }
//token //token
@ -165,13 +166,6 @@
this.getOrderList() this.getOrderList()
}, },
//
toEvaluate(item) {
uni.navigateTo({
url: '/pages/order/evaluate?id=' + item.id + '&projectId=' + item.projectId
})
},
// //
toOrderDetail(id) { toOrderDetail(id) {
uni.navigateTo({ uni.navigateTo({
@ -179,54 +173,21 @@
}) })
}, },
//
moreOrder(item) {
this.$api('getProjectDetail', {
id: item.projectId
}, res => {
if (res.code == 200) {
uni.navigateTo({
url: `/pages/technician/selectTechnician?serviceId=${item.projectId}`
})
sessionStorage.setItem('technicianList', JSON.stringify(res.result.tenPageList))
}
//
toPlaceorder(res, projectId) {
uni.navigateTo({
url: `/pages/technician/selectTechnician?serviceId=${projectId}&current=order&active=${this.active}`
}) })
sessionStorage.setItem('technicianList', JSON.stringify(res.result.tenPageList))
}, },
//
calcelOrder(orderId) {
showConfirmDialog({
title: '取消订单',
message: '确认取消订单?取消后,请留意退款或后续通知。',
}).then(() => {
this.$api('cancelVipOrder', {
orderId
}, res => {
if (res.code == 200) {
uni.showToast({
title: '取消成功',
icon: 'none'
})
this.getOrderList()
}
})
}).catch(() => {});
},
//
toPayOrder(item) {
this.$api('immediatelyPay', {
addressId: item.addressId,
couponId: item.couponId,
orderId: item.id,
payType: item.payType,
remark: item.remark,
serviceTime: item.serviceTime
}, res => {
if (res.code == 200) {
this.$wxPay(res,this.getOrderList,this.getOrderList)
}
//
cancelSuccess() {
uni.showToast({
title: '取消成功',
icon: 'none'
}) })
this.getOrderList()
}, },
//list //list
@ -275,12 +236,12 @@
.left { .left {
width: 150rpx; width: 150rpx;
height: 150rpx; height: 150rpx;
overflow: hidden;
border-radius: 10rpx; border-radius: 10rpx;
image { image {
width: 150rpx; width: 150rpx;
height: 150rpx; height: 150rpx;
border-radius: 10rpx;
} }
.tag { .tag {


+ 1
- 1
service-uniapp-client/pages/mine/collect.vue View File

@ -26,7 +26,7 @@
<van-icon name="star" color="#E8615E" size="25rpx" /> <van-icon name="star" color="#E8615E" size="25rpx" />
<text class="score">{{ item.technician.level }}</text> <text class="score">{{ item.technician.level }}</text>
</view> </view>
<view @click="calcelCollect(item.technician.id)" class="alert-collect">
<view @click.stop="calcelCollect(item.technician.id)" class="alert-collect">
<image src="@/static/collect/alert-collect-icon.png"></image> <image src="@/static/collect/alert-collect-icon.png"></image>
<text class="alert-add-collect">取消收藏</text> <text class="alert-add-collect">取消收藏</text>
</view> </view>


+ 38
- 2
service-uniapp-client/pages/order/orderDetail.vue View File

@ -39,8 +39,20 @@
</van-steps> </van-steps>
<view class="btns"> <view class="btns">
<view class="btn btc" @click="calcelOrder(msgOrder.id,cancelSuccess)" v-if="msgOrder.state == 0">
取消订单
</view>
<view class="btn" @click="toPayOrder(msgOrder)" v-if="msgOrder.state == 0"> <view class="btn" @click="toPayOrder(msgOrder)" v-if="msgOrder.state == 0">
去付款
立即付款
</view>
<view class="btn btc" @click="moreOrder(msgOrder.projectId,toPlaceorder)" v-if="msgOrder.state == 3">
再来一单
</view>
<view class="btn" @click="toEvaluate(msgOrder.id,msgOrder.projectId)" v-if="msgOrder.state == 3">
立即评价
</view>
<view class="btn" @click="moreOrder(msgOrder.projectId,toPlaceorder)" v-if="msgOrder.state == 4">
再来一单
</view> </view>
</view> </view>
@ -222,10 +234,12 @@
<script> <script>
import mNavbar from '@/components/base/m-navbar.vue' import mNavbar from '@/components/base/m-navbar.vue'
import order from '@/mixins/order.js'
export default { export default {
components: { components: {
mNavbar, mNavbar,
}, },
mixins: [order],
data() { data() {
return { return {
rate: 5, rate: 5,
@ -356,7 +370,24 @@
getStatus(state){ getStatus(state){
let stateArr = ['待付款','已付款','已确认','已完成','已取消'] let stateArr = ['待付款','已付款','已确认','已完成','已取消']
return stateArr[state] return stateArr[state]
}
},
//
cancelSuccess() {
uni.showToast({
title: '取消成功',
icon: 'none'
})
this.getOrderDetail()
},
//
toPlaceorder(res, projectId) {
uni.navigateTo({
url: `/pages/technician/selectTechnician?serviceId=${projectId}`
})
sessionStorage.setItem('technicianList', JSON.stringify(res.result.tenPageList))
},
} }
} }
@ -470,6 +501,11 @@
background-color: #ffb300; background-color: #ffb300;
border-radius: 30rpx; border-radius: 30rpx;
font-size: 25rpx; font-size: 25rpx;
margin-right: 10rpx;
}
.btc{
background: #ccc;
} }
} }
} }


+ 4
- 2
service-uniapp-client/pages/order/payOrder.vue View File

@ -372,6 +372,8 @@
} else if (this.payMethod == 0) { // } else if (this.payMethod == 0) { //
this.$wxPay(res,this.paySusscess,this.paySusscess) this.$wxPay(res,this.paySusscess,this.paySusscess)
} }
}else{ //
this.paySusscess()
} }
}) })
}, },
@ -474,8 +476,8 @@
//() //()
paySusscess(){ paySusscess(){
uni.switchTab({
url: '/pages/index/order?active=1'
uni.reLaunch({
url: '/pages/index/order?active=2'
}) })
}, },


+ 6
- 0
service-uniapp-client/pages/technician/selectTechnician.vue View File

@ -33,6 +33,12 @@
}, },
leftClick() { leftClick() {
let { current , active } = this.$route.query
if(current && active > -2){
return uni.reLaunch({
url: `/pages/index/order?active=${active}`
})
}
uni.switchTab({ uni.switchTab({
url: '/pages/index/index' url: '/pages/index/index'
}) })


Loading…
Cancel
Save