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 class="mark">
<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 class="tags">
<view class="tag" v-for="(t) in item.labelText.split(',')">
@ -53,26 +53,18 @@
list: {
type: Array,
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: {
//
getSatisfaction(num){
console.log(num);
let satisfaction = ['不满意','不满意','较满意','满意','非常满意']
return satisfaction[num - 1]
}
}
}
</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 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 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 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 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 class="b2" @click.stop="moreOrder(item.projectId,toPlaceorder)" v-if="item.state == 4">
再来一单
</view>
</view>
</view>
@ -88,11 +88,13 @@
showConfirmDialog
} from 'vant';
import Position from '@/utils/position.js'
import order from '@/mixins/order.js'
export default {
components: {
mNavbar,
},
mixins: [order],
data() {
return {
tabs: [{
@ -114,7 +116,7 @@
name: '已取消'
}
],
active: this.$route.query.active || 0,
active: this.$route.query.active ? parseInt(this.$route.query.active) : 0,
queryParams: {
state: -1,
pageNo: 1,
@ -126,22 +128,21 @@
}
},
onShow() {
this.getOrderList(-1)
this.getOrderList()
},
methods: {
//
getOrderList() {
this.queryParams.state = this.active - 1 > -2 ? this.active - 1 : -1
this.$api('getOrderList', this.queryParams, res => {
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) {
this.finished = true
}
this.loading = false
}else{
this.finished = true
}
//token
@ -165,13 +166,6 @@
this.getOrderList()
},
//
toEvaluate(item) {
uni.navigateTo({
url: '/pages/order/evaluate?id=' + item.id + '&projectId=' + item.projectId
})
},
//
toOrderDetail(id) {
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
@ -275,12 +236,12 @@
.left {
width: 150rpx;
height: 150rpx;
overflow: hidden;
border-radius: 10rpx;
image {
width: 150rpx;
height: 150rpx;
border-radius: 10rpx;
}
.tag {


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

@ -26,7 +26,7 @@
<van-icon name="star" color="#E8615E" size="25rpx" />
<text class="score">{{ item.technician.level }}</text>
</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>
<text class="alert-add-collect">取消收藏</text>
</view>


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

@ -39,8 +39,20 @@
</van-steps>
<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>
<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>
@ -222,10 +234,12 @@
<script>
import mNavbar from '@/components/base/m-navbar.vue'
import order from '@/mixins/order.js'
export default {
components: {
mNavbar,
},
mixins: [order],
data() {
return {
rate: 5,
@ -356,7 +370,24 @@
getStatus(state){
let stateArr = ['待付款','已付款','已确认','已完成','已取消']
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;
border-radius: 30rpx;
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) { //
this.$wxPay(res,this.paySusscess,this.paySusscess)
}
}else{ //
this.paySusscess()
}
})
},
@ -474,8 +476,8 @@
//()
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() {
let { current , active } = this.$route.query
if(current && active > -2){
return uni.reLaunch({
url: `/pages/index/order?active=${active}`
})
}
uni.switchTab({
url: '/pages/index/index'
})


Loading…
Cancel
Save