py 1 vuosi sitten
vanhempi
commit
f7e7f2ba41

+ 3 - 1
api/errands.js

@@ -4,4 +4,6 @@ const newsUrl = '/api/errands/'
 // 获取轮播图
 export const errandsBanner = (data) => request(newsUrl + 'banner', 'post', { ...data },false)
 // 获取服务列表
-export const errandsServe = (data) => request(newsUrl + 'serve', 'post', { ...data },false)
+export const errandsServe = (data) => request(newsUrl + 'serve', 'post', { ...data },false)
+// 创建订单
+export const errandsCreate = (data) => request(newsUrl + 'create', 'post', { ...data },false)

+ 3 - 1
api/errandsOrder.js

@@ -10,4 +10,6 @@ export const errandsOrderPay = (data) => request(newsUrl + 'pay', 'post', { ...d
 // 订单列表
 export const errandsOrderList = (data) => request(newsUrl + 'list', 'post', { ...data },false)
 // 取消订单
-export const errandsOrderCancel = (data) => request(newsUrl + 'cancel', 'post', { ...data },false)
+export const errandsOrderCancel = (data) => request(newsUrl + 'cancel', 'post', { ...data },false)
+// 获取订单详情
+export const errandsOrderInfo = (data) => request(newsUrl + 'info', 'post', { ...data },false)

BIN
pages-buy/static/ye.png


+ 566 - 0
pages-order/run-errands-info.vue

@@ -0,0 +1,566 @@
+<template>
+	<view class="flex-common-css iPhone-bottom box-border-box">
+		<Nav title=" " leftIconColor="#333" titleColor="#333" bgckgroundBox='transparent'></Nav>
+		<image class="bg-img" src="@/static/img/order/bg.png" mode=""></image>
+		<view class="p-24-24-0 box-border-box">
+			<view class="mb-24" v-if="infoData.order_status == 1">
+				<view class="fs-40 fc-3 mb-8">
+					{{infoData.order_status_str}},剩余{{time.m}}:{{time.s}}
+				</view>
+				<view class="fs-24 fc-FB3D03">
+					10分钟内未支付,订单将自动取消
+				</view>
+			</view>
+			<view class="mb-24" v-else>
+				<view class="fs-48 fc-3 fw-600">
+					{{infoData.order_status_str}}
+				</view>
+			</view>
+			<view class="bgc-f b-rad-20 p-24 box-border-box">
+				<view class="p-b-20 mb-24 b-b-F9F9F9 fs-32 fc-3" v-show="infoData.order_status == 1">
+					请尽快支付
+				</view>
+				<view class="p-b-20 mb-24 b-b-F9F9F9 fs-32 fc-3"
+					v-if="infoData.order_status == 4 || infoData.order_status == 5 || infoData.order_status == 6">
+					感谢你对君子校园的信任,期待你再次光临
+				</view>
+				<view class="align-items-center flex-wrap-wrap">
+					<view class="w-33 flex-direction align-items-center" @click="pay"
+						v-show="infoData.order_status == 1">
+						<image class="mb-4 icon" src="@/static/img/order/qzf.png" mode=""></image>
+						<view class="fs-24 fc-41ABF5">
+							去支付
+						</view>
+					</view>
+					<view @click="goToUrl" class="w-33 flex-direction align-items-center"
+						v-show="infoData.order_status == 4 || infoData.order_status == 5 || infoData.order_status == 6">
+						<image class="mb-4 icon" src="@/static/img/order/zlyd.png" mode=""></image>
+						<view class="fs-24 fc-41ABF5">
+							再来一单
+						</view>
+					</view>
+					<view class="w-33 flex-direction align-items-center">
+						<button class="item-box-button" open-type="contact" :bindcontact="handleContact"></button>
+						<image class="mb-4 icon" src="@/static/img/order/lxkf.png" mode=""></image>
+						<view class="fs-24 fc-3">
+							联系客服
+						</view>
+					</view>
+					<view class="w-33 flex-direction align-items-center" v-show="infoData.order_status == 2"
+						@click="cancelOrder">
+						<image class="mb-4 icon" src="@/static/img/order/qxdd.png" mode=""></image>
+						<view class="fs-24 fc-3">
+							取消订单
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+		<scroll-view :scroll-y="true" class="scroll-view-css p-24 box-border-box" @scrolltolower="scrolltolower">
+			<view class="bgc-f b-rad-20 p-24 box-border-box mb-20">
+				<view class="align-items-center mb-24">
+					<image class="shops-img" :src="infoData.errands.img" mode="aspectFit"></image>
+					<view class="w-420 fc-3 fs-32 fw-600 text-overflow-ellipsis-one">
+						{{infoData.errands.name}}
+					</view>
+				</view>
+				<view class="mb-24">
+					<view class="content-b b-rad-20 fs-28 fc-0 bgc-F6F6F6 p-24 box-border-box">
+						{{infoData.serve_desc}}
+					</view>
+				</view>
+				<view class="align-items-center mb-24">
+					<view class="fs-32 fw-600 fc-3 mr-12 flex-shrink0 w-64">
+						服务地址
+					</view>
+					<view class="fs-28 fc-3">
+						{{infoData.serve_address}}
+					</view>
+				</view>
+				<view class="align-items-center mb-24 p-b-20 b-b-999">
+					<view class="fs-32 fw-600 fc-3 mr-12 flex-shrink0 w-64">
+						送达地址
+					</view>
+					<view class="fs-28 fc-3">
+						{{infoData.address>0?infoData.school_name + infoData.dorm_name + infoData.address:'无'}}
+					</view>
+				</view>
+				<view class="align-items-center flex-justify-space mb-24">
+					<view class="fs-28 fc-3">
+						基础服务费
+					</view>
+					<view class="fs-32 fc-3">
+						¥ {{infoData.serve_money}}
+					</view>
+				</view>
+				<view class="align-items-center flex-justify-space mb-24" v-if="infoData.item">
+					<view class="fs-28 fc-3">
+						{{infoData.item.goods_name}}({{infoData.item.goods_attr}})
+					</view>
+					<view class="fs-32 fc-3">
+						¥ {{infoData.item.goods_price}}
+					</view>
+				</view>
+				<view class="align-items-center flex-justify-space mb-24" v-if="infoData.is_up === 1">
+					<view class="fs-28 fc-3">
+						上楼加价
+					</view>
+					<view class="fs-32 fc-3">
+						¥ {{infoData.up_money}}
+					</view>
+				</view>
+				<view class="align-items-center flex-justify-space mb-24">
+					<view class="fs-28 fc-3">
+						打赏金额
+					</view>
+					<view class="fs-32 fc-3">
+						¥ {{infoData.reward_money?(Number(infoData.reward_money)).toFixed(2):'0.00'}}
+					</view>
+				</view>
+				<!-- 				<view class="align-items-center flex-justify-space pb-36 b-b-F9F9F9 mb-22">
+					<view class="align-items-center">
+						<image class="mr-6 icon-right" src="@/static/img/order/yhq.png" mode=""></image>
+						<view class="fs-28 fc-3">
+							优惠券
+						</view>
+					</view>
+					<view class="fs-32 fc-FB3D03">
+						-¥{{infoData.coupon_money}}
+					</view>
+				</view> -->
+				<view class="align-items-center flex-justify-end">
+					<view class="fs-28 fc-3">
+						金额
+					</view>
+					<view class="fs-24 fw-600 fc-3">
+						¥
+					</view>
+					<view class="fs-36  fw-600 fc-3">
+						{{infoData.pay_money}}
+					</view>
+				</view>
+			</view>
+			<view class="bgc-f b-rad-20 p-24 box-border-box mb-20">
+				<view class="display-flex flex-justify-space mb-26">
+					<view class="fs-28 fc-9">
+						期望时间
+					</view>
+					<view class="fs-28 fc-3 w-480 text-align-right">
+						{{infoData.serve_time}}
+					</view>
+				</view>
+				<view class="display-flex flex-justify-space mb-26">
+					<view class="fs-28 fc-9 flex-shrink0">
+						图片介绍
+					</view>
+					<view class="align-items-center images-box flex-wrap-wrap">
+						<image class="images-img" v-for="(item,index) in infoData.images" :src="item" mode="aspectFit"
+							@click="lookFinishImage(1,infoData.images,index)"></image>
+					</view>
+				</view>
+				<view class="display-flex flex-justify-space pb-20 mb-26">
+					<view class="fs-28 fc-9">
+						骑手信息
+					</view>
+					<view class="fs-28 fc-3 w-480 text-align-right">
+						{{infoData.rider.rider_name?infoData.rider.rider_name:'无'}}{{infoData.rider.phone || ''}}
+					</view>
+				</view>
+				<view class="display-flex flex-justify-space mb-26">
+					<view class="fs-28 fc-9">
+						订单编号
+					</view>
+					<view class="align-items-center flex-justify-end">
+						<view class="fs-28 fc-3 w-480 mr-8 text-align-right">
+							{{infoData.order_sn}}
+						</view>
+						<image class="icon-fz" src="@/static/img/order/fz.png" mode="" @click="copy(infoData.order_sn)">
+						</image>
+					</view>
+				</view>
+				<view class="display-flex flex-justify-space mb-26">
+					<view class="fs-28 fc-9">
+						下单时间
+					</view>
+					<view class="fs-28 fc-3 w-480 text-align-right">
+						{{infoData.created_at}}
+					</view>
+				</view>
+				<view class="display-flex flex-justify-space mb-26">
+					<view class="fs-28 fc-9">
+						支付方式
+					</view>
+					<view class="fs-28 fc-3 w-480 text-align-right">
+						{{infoData.pay_type_str}}
+					</view>
+				</view>
+				<view class="display-flex flex-justify-space mb-26" v-if="infoData.order_status == 4">
+					<view class="fs-28 fc-9">
+						送达图片
+					</view>
+					<view class="fs-28 fc-3 w-480 text-align-right fc-41ABF5"
+						@click="lookFinishImage(2,infoData.finish_image)">
+						点击查看
+					</view>
+				</view>
+				<view class="display-flex flex-justify-space mb-26" v-if="infoData.order_status == 4">
+					<view class="fs-28 fc-9">
+						完成时间
+					</view>
+					<view class="fs-28 fc-3 w-480 text-align-right">
+						{{infoData.finish_time}}
+					</view>
+				</view>
+			</view>
+		</scroll-view>
+		<uni-popup ref="popupReason" type="bottom" :is-mask-click="false" background-color="#fff"
+			border-radius="10px 10px 0 0">
+			<view class="popup-reason-box flex-direction">
+				<view class="text-align-center fs-38 fw-600 fc-3 mb-18">
+					选择取消原因
+				</view>
+				<picker-view @change="bindChange" class="picker-view flex-1" :immediate-change='true'>
+					<picker-view-column>
+						<view class="picker-view-item" v-for="(item,index) in refundReason" :key="index">
+							{{item.refund_msg}}
+						</view>
+					</picker-view-column>
+				</picker-view>
+				<view class="align-items-center flex-justify-space plr-24 box-border-box">
+					<view class="flex-1 mr-20 pop-b text-align-center fs-36 b-r-ccc" @click="popCancel">
+						取消
+					</view>
+					<view class="flex-1 pop-b text-align-center bgc-41ABF5 fc-f fs-36" @click="popSure">
+						确定
+					</view>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		commonRefundReason
+	} from "@/api/common.js"
+	import {
+		errandsOrderInfo,
+		errandsOrderCancel
+	} from "@/api/errandsOrder.js"
+	import tools from "@/service/tools";
+	export default {
+		components: {},
+		data() {
+			return {
+				goodsData: [{
+					name: '1'
+				}, {
+					name: '2'
+				}],
+				goodsShow: true,
+				infoData: {},
+				time: {
+					day: '',
+					h: "",
+					m: '',
+					s: '',
+				},
+				isAJAX: false,
+				address_id: '',
+				refund_msg: '', // 退款理由
+				refundReason: [] //退款原因
+			};
+		},
+		onLoad(data) {
+			if (data) {
+				// console.log(data);
+				this.errandsOrderInfo(data.orderId)
+			}
+		},
+		mounted() {},
+		onUnload() {
+			const takeOutData = {}
+			errandsOrderInfo({
+				order_id: this.infoData.id
+			}).then((res) => {
+				if (res.code == 1) {
+					takeOutData.id = this.infoData.id
+					takeOutData.order_status = res.data.order_status
+					takeOutData.order_status_str = res.data.order_status_str
+					uni.$emit('takeOutData', takeOutData)
+				}
+			})
+		},
+		methods: {
+			popCancel() {
+				// 退款取消
+				this.$refs.popupReason.close()
+			},
+			popSure() {
+				// 退款确认
+				if (this.isAJAX) {
+					return
+				}
+				this.isAJAX = true;
+				errandsOrderCancel({
+					order_id: this.infoData.id,
+					refund_msg: this.refund_msg
+				}).then((res) => {
+					if (res.code == 1) {
+						tools.success(res.msg)
+						this.$refs.popupReason.close()
+						setTimeout(() => {
+							this.errandsOrderInfo(this.infoData.id)
+						}, 1500)
+						this.isAJAX = false;
+					} else {
+						tools.error(res.msg)
+						this.isAJAX = false;
+					}
+				})
+			},
+			bindChange(e) {
+				let num = e.detail.value[0]
+				this.refund_msg = this.refundReason[num].refund_msg
+			},
+			lookFinishImage(type, img, index) {
+				if (type === 1) {
+					tools.lookBigImg(index, img)
+				} else {
+					tools.lookBigImg(1, img)
+				}
+			},
+			copy(value) {
+				uni.setClipboardData({
+					data: value,
+					success() {
+						tools.success('复制成功')
+					},
+					fail() {
+						tools.error("复制失败")
+					}
+				})
+			},
+			goToUrl() {
+				// 再来一单
+				uni.redirectTo({
+					url: '/pages-takeout/run-errands'
+				})
+			},
+			setAddress() {
+				this.$refs.selectAddress.getList();
+			},
+			giveAddress(e) {
+				this.address_id = e;
+				this.expressOrderAddress()
+			},
+			expressOrderAddress() {
+				expressOrderAddress({
+					order_id: this.infoData.id,
+					address_id: this.address_id
+				}).then((res) => {
+					if (res.code == 1) {
+						tools.success(res.msg)
+						this.errandsOrderInfo(this.infoData.id)
+					} else {
+						tools.error(res.msg)
+					}
+				})
+			},
+			pay() {
+				uni.redirectTo({
+					url: `/pages-takeout/run-errands-mod/pay-page?orderId=${this.infoData.id}`
+				});
+			},
+			cancelOrder() {
+				// 跑腿取消订单
+				commonRefundReason().then((res) => {
+					if (res.code === 1) {
+						this.refundReason = res.data
+					}
+				})
+				this.$refs.popupReason.open()
+			},
+			openGoods() {
+				this.goodsShow = !this.goodsShow
+			},
+			scrolltolower() {
+				// console.log('触底');
+			},
+			errandsOrderInfo(id) {
+				errandsOrderInfo({
+					order_id: id
+				}).then((res) => {
+					if (res.code == 1) {
+						this.infoData = res.data
+						if (this.infoData.order_status == 1) {
+							let createDate = new Date(res.data.created_at); //格式化订单创建时候的时间
+							createDate.setMinutes(createDate.getMinutes() + 10)
+							this.setCountDown(createDate)
+						}
+					}
+				})
+			},
+			setCountDown(sTime) {
+				let end = new Date(sTime).getTime();
+				let now = new Date().getTime();
+				let msec = end - now;
+				this.time.day = parseInt(msec / 1000 / 60 / 60 / 24);
+				let h = parseInt(msec / 1000 / 60 / 60 % 24);
+				let m = parseInt(msec / 1000 / 60 % 60);
+				let s = parseInt(msec / 1000 % 60);
+				this.time.h = h > 9 ? h : '0' + h;
+				this.time.m = m > 9 ? m : '0' + m;
+				this.time.s = s > 9 ? s : '0' + s;
+				msec -= 1000;
+				if (this.time.day >= 1) {
+					this.showTime = true;
+				} else {
+					this.showTime = false;
+				};
+				if (msec >= 0) {
+					setTimeout(() => {
+						this.setCountDown(sTime);
+					}, 1000);
+				} else {
+					this.isTimeEnd = true;
+					this.bText = '活动结束';
+					this.time.h = '--';
+					this.time.m = '--';
+					this.time.s = '--';
+				};
+			}
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.images-box {
+		max-width: 60%;
+	}
+
+	.images-img {
+		width: 30rpx;
+		height: 30rpx;
+		margin: 0 10rpx 10rpx 0;
+	}
+
+	.w-64 {
+		width: 64rpx;
+	}
+
+	.popup-reason-box {
+		width: 100%;
+		height: 45vh;
+		overflow: auto;
+		border-radius: 20rpx 20rpx 0 0;
+		background: #fff;
+		padding: 24rpx 0 0;
+		box-sizing: border-box;
+	}
+
+	.picker-view {
+		width: 100%;
+		// height: 70%;
+	}
+
+	.picker-view-item {
+		// height: 90rpx;
+		line-height: 68rpx;
+		text-align: center;
+		background: #F5F5F5;
+	}
+
+	.pop-b {
+		height: 80rpx;
+		line-height: 80rpx;
+		border-radius: 20rpx;
+	}
+
+	.shops-img {
+		width: 48rpx;
+		height: 48rpx;
+		margin: 0 8rpx 0 0;
+		border-radius: 50%;
+	}
+
+	.bg-img {
+		position: fixed;
+		left: 0;
+		top: 0;
+		z-index: -1;
+		width: 100%;
+		height: 320rpx;
+	}
+
+	.w-33 {
+		width: 33%;
+		position: relative;
+	}
+
+	.item-box-button {
+		position: absolute;
+		width: 100%;
+		height: 88rpx;
+		top: 0;
+		left: 0;
+		z-index: 100;
+		background-color: transparent;
+		border: none !important;
+	}
+
+	button::after {
+		border: none !important;
+	}
+
+	.p-24-24-0 {
+		padding: 24rpx 24rpx 0;
+	}
+
+	.icon {
+		width: 48rpx;
+		height: 48rpx;
+	}
+
+	.w-420 {
+		width: 420rpx;
+	}
+
+	.goods-img {
+		width: 108rpx;
+		height: 108rpx;
+		border-radius: 8rpx;
+	}
+
+	.w-376 {
+		width: 376rpx;
+	}
+
+	.icon-right {
+		width: 32rpx;
+		height: 32rpx;
+	}
+
+	.w-480 {
+		width: 480rpx;
+	}
+
+	.icon-fz {
+		width: 24rpx;
+		height: 24rpx;
+	}
+
+	.goods-box {
+		overflow: hidden;
+	}
+
+	.goodsShowOne {
+		max-height: 508rpx;
+		transition: all .5s linear;
+	}
+
+	.goodsShowTwo {
+		height: auto;
+		transition: all .5s linear;
+	}
+</style>

+ 1 - 12
pages-order/takeout-info.vue

@@ -36,13 +36,6 @@
 							去支付
 						</view>
 					</view>
-					<!-- 					<view @click="setAddress" class="w-33 flex-direction align-items-center"
-						v-show="infoData.order_status == 1 || infoData.order_status == 2">
-						<image class="mb-4 icon" src="@/static/img/order/xgdd.png" mode=""></image>
-						<view class="fs-24 fc-3">
-							修改收货地址
-						</view>
-					</view> -->
 					<view @click="goToUrl" class="w-33 flex-direction align-items-center"
 						v-show="infoData.order_status == 3 || infoData.order_status == 7 || infoData.order_status == 8 || infoData.order_status == 9 || infoData.order_status == 10">
 						<image class="mb-4 icon" src="@/static/img/order/zlyd.png" mode=""></image>
@@ -229,7 +222,6 @@
 				</view>
 			</view>
 		</scroll-view>
-		<SelectAddress ref="selectAddress" @giveAddress='giveAddress'></SelectAddress>
 	</view>
 </template>
 
@@ -240,11 +232,8 @@
 		orderPay
 	} from "@/api/order.js"
 	import tools from "@/service/tools";
-	import SelectAddress from "./module/select-address.vue";
 	export default {
-		components: {
-			SelectAddress
-		},
+		components: {},
 		data() {
 			return {
 				goodsData: [{

+ 3 - 3
pages-takeout/pay-page.vue

@@ -10,7 +10,7 @@
 					¥
 				</view>
 				<view class="fs-64 fw-500 fc-FB3D03">
-					{{Number(payData.pay_money).toFixed(2)}}
+					{{Number(payData.pay_money).toFixed(2) || '0.00'}}
 				</view>
 			</view>
 			<view class="mb-40 text-align-center">
@@ -27,7 +27,7 @@
 							余额支付
 						</view>
 						<view class="fs-28 fc-707070">
-							(可用{{Number(payData.member_money).toFixed(2)}})
+							(可用{{Number(payData.member_money).toFixed(2) || '0.00'}})
 						</view>
 					</view>
 					<image v-if="payType === 3" class="w-h-36 mr-10" src="@/static/img/common/y-select.png" mode="">
@@ -48,7 +48,7 @@
 			</view>
 			<view class="fs-32 fw-500 fc-f text-align-center pay-but b-rad-200" @click="paySure"
 				:class="butType === 1?'bgc-4FB3EF':'bgc-9'">
-				立即支付¥{{Number(payData.pay_money).toFixed(2)}}
+				立即支付¥{{Number(payData.pay_money).toFixed(2) || '0.00'}}
 			</view>
 		</scroll-view>
 	</view>

+ 260 - 0
pages-takeout/run-errands-mod/pay-page.vue

@@ -0,0 +1,260 @@
+<template>
+	<view class="flex-common-css iPhone-bottom flex-common-css box-border-box">
+		<Nav title="订单支付" bgckgroundBox='transparent'></Nav>
+		<scroll-view :scroll-y="true" class="box-sizing-border scroll-view-css plr-30 box-border-box">
+			<view class="fs-28 fc-121212 mb-20 p-t-40 text-align-center">
+				剩余时间 {{time.m}}:{{time.s}}
+			</view>
+			<view class="align-items-baseline flex-justify-center mb-40">
+				<view class="fs-40 fw-500 fc-FB3D03">
+					¥
+				</view>
+				<view class="fs-64 fw-500 fc-FB3D03">
+					{{Number(payData.pay_money).toFixed(2) || '0.00'}}
+				</view>
+			</view>
+			<view class="mb-40 text-align-center">
+				订单编号: {{payData.order_sn}}
+			</view>
+			<view class="fs-32 fw-500 fc-3 mb-22">
+				支付方式
+			</view>
+			<view class="plr-16 box-border-box b-rad-20 bgc-f">
+				<view class="align-items-center flex-justify-space p-26-0 b-t-F4" @click="setPayType(3)">
+					<view class="align-items-center">
+						<image class="icon-img mr-16" src="../static/ye.png" mode=""></image>
+						<view class="fs-28 fc-333">
+							余额支付
+						</view>
+						<view class="fs-28 fc-707070">
+							(可用{{Number(payData.member_money).toFixed(2) || '0.00'}})
+						</view>
+					</view>
+					<image v-if="payType === 3" class="w-h-36 mr-10" src="@/static/img/common/y-select.png" mode="">
+					</image>
+					<image v-else class="w-h-36 mr-10" src="@/static/img/common/n-select.png" mode=""></image>
+				</view>
+				<view class="align-items-center flex-justify-space p-26-0 b-t-F4" @click="setPayType(1)">
+					<view class="align-items-center">
+						<image class="icon-img mr-16" src="@/static/img/common/wx-zf.png" mode="scaleToFill"></image>
+						<view class="fs-28 fc-333">
+							微信支付
+						</view>
+					</view>
+					<image v-if="payType === 1" class="w-h-36 mr-10" src="@/static/img/common/y-select.png" mode="">
+					</image>
+					<image v-else class="w-h-36 mr-10" src="@/static/img/common/n-select.png" mode=""></image>
+				</view>
+			</view>
+			<view class="fs-32 fw-500 fc-f text-align-center pay-but b-rad-200" @click="paySure"
+				:class="butType === 1?'bgc-4FB3EF':'bgc-9'">
+				立即支付¥{{Number(payData.pay_money).toFixed(2) || '0.00'}}
+			</view>
+		</scroll-view>
+	</view>
+</template>
+
+<script>
+	import {
+		errandsOrderPayInfo,
+		errandsOrderPay
+	} from "@/api/errandsOrder.js"
+	import tools from "@/service/tools.js"
+	export default {
+		data() {
+			return {
+				payType: 1,
+				order_id: 0,
+				isAJAX: false,
+				payData: {},
+				butType: 1,
+				time: {
+					day: '',
+					h: "",
+					m: '',
+					s: '',
+				},
+			}
+		},
+		onLoad(data) {
+			if (data) {
+				this.order_id = data.orderId
+				this.errandsOrderPayInfo()
+			}
+		},
+		mounted() {},
+		methods: {
+			errandsOrderPayInfo() {
+				errandsOrderPayInfo({
+					order_id: this.order_id
+				}).then((res) => {
+					if (res.code === 1) {
+						this.payData = res.data
+						let createDate = new Date(res.data.created_at); //格式化订单创建时候的时间
+						createDate.setMinutes(createDate.getMinutes() + 10)
+						this.setCountDown(createDate)
+					}
+				})
+			},
+			setCountDown(sTime) {
+				let end = new Date(sTime).getTime();
+				let now = new Date().getTime();
+				let msec = end - now;
+				this.time.day = parseInt(msec / 1000 / 60 / 60 / 24);
+				let h = parseInt(msec / 1000 / 60 / 60 % 24);
+				let m = parseInt(msec / 1000 / 60 % 60);
+				let s = parseInt(msec / 1000 % 60);
+				this.time.h = h > 9 ? h : '0' + h;
+				this.time.m = m > 9 ? m : '0' + m;
+				this.time.s = s > 9 ? s : '0' + s;
+				msec -= 1000;
+				if (this.time.day >= 1) {
+					this.showTime = true;
+				} else {
+					this.showTime = false;
+				};
+				if (msec >= 0) {
+					setTimeout(() => {
+						this.setCountDown(sTime);
+					}, 1000);
+				} else {
+					this.isTimeEnd = true;
+					this.bText = '活动结束';
+					this.time.h = '--';
+					this.time.m = '--';
+					this.time.s = '--';
+				};
+			},
+			setPayType(payType) {
+				this.payType = payType
+				if (payType === 3) {
+					if (Number(this.payData.member_money) < Number(this.payData.pay_money)) {
+						this.butType = 2
+					} else {
+						this.butType = 1
+					}
+				} else {
+					this.butType = 1
+				}
+			},
+			paySure() {
+				if (this.butType === 2) {
+					return
+				}
+				errandsOrderPay({
+					order_id: this.order_id,
+					pay_type: this.payType
+				}).then((ret) => {
+					if (ret.code === 1) {
+						if (this.payType === 1) {
+							uni.requestPayment({
+								provider: "wxpay", //支付类型-固定值
+								timeStamp: ret.data.wx_pay.timeStamp + "", // 时间戳(单位:秒)
+								nonceStr: ret.data.wx_pay.nonceStr, // 随机字符串
+								package: ret.data.wx_pay.package, // 固定值
+								signType: ret.data.wx_pay.signType, //固定值
+								paySign: ret.data.wx_pay.paySign, //签名
+								success: (ren) => {
+									uni.removeStorageSync('isConfirmAddressFlag')
+									tools.success("支付成功");
+									this.isAJAX = false;
+									setTimeout(() => {
+										uni.switchTab({
+											url: '/pages/order/index'
+										})
+										uni.setStorageSync('orderPayType', 4)
+									}, 1000)
+								},
+								fail: (err) => {
+									uni.removeStorageSync('isConfirmAddressFlag')
+									this.isAJAX = false;
+									tools.error("支付失败");
+									setTimeout(() => {
+										uni.switchTab({
+											url: '/pages/order/index'
+										})
+										uni.setStorageSync('orderPayType', 4)
+									}, 1000)
+								},
+							});
+						} else if (this.payType === 3) {
+							uni.removeStorageSync('isConfirmAddressFlag')
+							tools.success("支付成功");
+							this.isAJAX = false;
+							setTimeout(() => {
+								uni.switchTab({
+									url: '/pages/order/index'
+								})
+								uni.setStorageSync('orderPayType', 4)
+							}, 1000)
+						}
+					} else {
+						uni.removeStorageSync('isConfirmAddressFlag')
+						this.isAJAX = false;
+						tools.error("支付失败");
+						setTimeout(() => {
+							uni.switchTab({
+								url: '/pages/order/index'
+							})
+							uni.setStorageSync('orderPayType', 4)
+						}, 1000)
+					}
+				})
+			}
+		},
+	}
+</script>
+<style lang="scss" scoped>
+	.pop-box {
+		width: 80vw;
+		height: 30vh;
+	}
+
+	.p-t-40 {
+		padding: 40rpx 0 0;
+	}
+
+	.p-12-30 {
+		padding: 12rpx 30rpx;
+	}
+
+	.p-23-16 {
+		padding: 23rpx 16rpx;
+	}
+
+	.plr-16 {
+		padding: 0 16rpx;
+	}
+
+	.p-26-0 {
+		padding: 26rpx 0;
+	}
+
+	.icon-img {
+		width: 40rpx;
+		height: 40rpx;
+	}
+
+	.w-h-36 {
+		width: 36rpx;
+		height: 36rpx;
+	}
+
+	.pay-but {
+		width: 100%;
+		height: 80rpx;
+		line-height: 80rpx;
+		margin: 30rpx auto;
+	}
+
+	.pop-but {
+		width: 80%;
+		padding: 24rpx 0;
+		margin: auto;
+
+		.add-card {
+			width: 40rpx;
+			height: 40rpx;
+		}
+	}
+</style>

+ 1 - 1
pages-takeout/run-errands-mod/select-mod.vue

@@ -42,7 +42,7 @@
 		mounted() {},
 		methods: {
 			getList(id, data) {
-				if (id && ia != 0) {
+				if (id && id != 0) {
 					this.select_id = id
 				}
 				if (data) {

+ 113 - 9
pages-takeout/run-errands.vue

@@ -1,7 +1,7 @@
 <template>
-	<view class="flex-common-css iPhone-bottom box-border-box p-24">
+	<view class="flex-common-css iPhone-bottom box-border-box">
 		<Nav title="跑腿代拿" leftIconColor="#333" titleColor="#333"></Nav>
-		<scroll-view :scroll-y="true" class="scroll-view-css">
+		<scroll-view :scroll-y="true" class="scroll-view-css box-border-box p-24">
 			<view class="box-border-box mb-20">
 				<uni-swiper-dot :info="bannerList" mode="dot" :dotsStyles="dotStyle" :current="current">
 					<swiper class="swiper" @change="change" :autoplay='true' :circular='true' interval="4000">
@@ -99,7 +99,7 @@
 						<text class="fc-ff3939">*</text>是否上楼 :
 					</view>
 					<view class="fs-26 align-items-center">
-						<view class="align-items-center mr-50" @click="formData.is_up = 0">
+						<view class="align-items-center mr-50" @click="isUpClick(0)">
 							<uni-icons class="mr-10" v-if="formData.is_up === 0" type="checkbox-filled" size="22"
 								color="#4495FD"></uni-icons>
 							<uni-icons class="mr-10" v-else type="circle" size="22" color="#000"></uni-icons>
@@ -110,7 +110,7 @@
 								(0元)
 							</view>
 						</view>
-						<view class="align-items-center" @click="formData.is_up = 1">
+						<view class="align-items-center" @click="isUpClick(1)">
 							<uni-icons class="mr-10" v-if="formData.is_up === 1" type="checkbox-filled" size="22"
 								color="#4495FD"></uni-icons>
 							<uni-icons class="mr-10" v-else type="circle" size="22" color="#000"></uni-icons>
@@ -129,14 +129,14 @@
 					</view>
 					<view class="">
 						<input v-model="formData.reward_money" type="digit" cursor-spacing='20' class="uni-input"
-							placeholder="自定义金额 0~1000" />
+							placeholder="自定义金额 0~1000" @blur="amountNum" />
 					</view>
 				</view>
 			</view>
 		</scroll-view>
-		<view class="p-20 box-border-box bgc-f b-t-F9F9F9">
+		<view class="bgc-f b-t-F9F9F9 plr-24 box-border-box">
 			<view class="but-box align-items-center box-border-box flex-justify-space b-rad-200">
-				<view class="but-left align-items-center flex-1 bgc-3 pl-24 box-border-box">
+				<view class="but-left align-items-center flex-1 bgc-3 pl-24 box-border-box" @click="openPop">
 					<view class="fs-32 fc-FB4845 mr-20 fw-600">
 						¥ {{amount}}
 					</view>
@@ -144,11 +144,66 @@
 						(点击展开明细)
 					</view>
 				</view>
-				<view class="but bgc-5CC2FF fs-26 fc-f text-align-center">
+				<view class="but bgc-5CC2FF fs-26 fc-f text-align-center" @click.stop="goToUrl">
 					去下单
 				</view>
 			</view>
 		</view>
+		<uni-popup ref="popup" type="bottom" border-radius="10px 10px 0 0" background-color="#fff"
+			:is-mask-click="false">
+			<view class="pop-box box-border-box">
+				<uni-icons @click="closePop" class="box-close" type="closeempty" size="20"></uni-icons>
+				<view class="bgc-f p-24 box-border-box">
+					<view class="fs-34 fw-600 mb-20">
+						费用明细
+					</view>
+					<view class="align-items-center flex-justify-space mb-20">
+						<view class="fs-28 fc-6">
+							基础服务费
+						</view>
+						<view class="fs-28 fc-0">
+							¥ {{errandsData.price}}
+						</view>
+					</view>
+					<view class="align-items-center flex-justify-space mb-20">
+						<view class="fs-28 fc-6">
+							{{errandsData.item_name}}加价
+						</view>
+						<view class="fs-28 fc-0">
+							¥ {{itemData.price?itemData.price:'0.00'}}
+						</view>
+					</view>
+					<view class="align-items-center flex-justify-space mb-20">
+						<view class="fs-28 fc-6">
+							上楼加价
+						</view>
+						<view class="fs-28 fc-0">
+							¥ {{formData.is_up === 1?errandsData.up_price:'0.00'}}
+						</view>
+					</view>
+					<view class="align-items-center flex-justify-space">
+						<view class="fs-28 fc-6">
+							打赏金额
+						</view>
+						<view class="fs-28 fc-0">
+							¥ {{formData.reward_money?(Number(formData.reward_money)).toFixed(2):'0.00'}}
+						</view>
+					</view>
+				</view>
+				<view class="p-20 box-border-box bgc-f b-t-F9F9F9">
+					<view class="but-box align-items-center box-border-box flex-justify-space b-rad-200">
+						<view class="but-left align-items-center flex-1 bgc-3 pl-24 box-border-box" @click="closePop">
+							<view class="fs-32 fc-FB4845 mr-20 fw-600">
+								¥ {{amount}}
+							</view>
+						</view>
+						<view class="but bgc-5CC2FF fs-26 fc-f text-align-center" @click.stop="goToUrl">
+							去下单
+						</view>
+					</view>
+				</view>
+			</view>
+		</uni-popup>
 		<selectAddressVue ref="selectAddress" @giveAddress='giveAddress'></selectAddressVue>
 		<timeVue ref="selectTime" @giveTime='giveTime' @timeAndType='timeAndType'></timeVue>
 		<selectModVue ref="selectModRef" @selectData='selectData' :popTitleName='errandsData.item_name'></selectModVue>
@@ -164,7 +219,8 @@
 	} from '@/api/member.js'
 	import {
 		errandsBanner,
-		errandsServe
+		errandsServe,
+		errandsCreate
 	} from "@/api/errands.js"
 	import tools from '@/service/tools';
 	import {
@@ -229,9 +285,45 @@
 			this.getErrandsServe()
 		},
 		methods: {
+			goToUrl() {
+				errandsCreate(this.formData).then((res) => {
+					if(res.code === 1) {
+						uni.redirectTo({
+							url: `/pages-takeout/run-errands-mod/pay-page?orderId=${res.data.order_id}`
+						});
+					}
+				})
+			},
+			isUpClick(num) {
+				this.formData.is_up = num
+				this.amountNum()
+			},
+			amountNum() {
+				this.amount = 0
+				if (this.errandsData.price) {
+					this.amount = (Number(this.amount) + Number(this.errandsData.price)).toFixed(2)
+				}
+				if (this.itemData.price) {
+					this.amount = (Number(this.amount) + Number(this.itemData.price)).toFixed(2)
+				}
+				if (this.formData.is_up === 1) {
+					this.amount = (Number(this.amount) + Number(this.errandsData.up_price)).toFixed(2)
+				}
+				if (this.formData.reward_money) {
+					this.amount = (Number(this.amount) + Number(this.formData.reward_money)).toFixed(2)
+				}
+			},
+			openPop() {
+				this.$refs.popup.open()
+			},
+			closePop() {
+				this.$refs.popup.close()
+			},
 			selectData(item) {
 				if (item) {
 					this.itemData = item
+					this.formData.item_id = item.item_id
+					this.amountNum()
 				}
 			},
 			openItem() {
@@ -314,6 +406,7 @@
 				this.errandsData = item
 				this.itemData = {}
 				this.deliverText = ''
+				this.amountNum()
 			},
 			getBanner() {
 				errandsBanner().then((res) => {
@@ -328,6 +421,7 @@
 						this.serveData = res.data
 						this.formData.errands_id = this.serveData[0].errands_id
 						this.errandsData = this.serveData[0]
+						this.amountNum()
 					}
 				})
 			},
@@ -339,6 +433,16 @@
 </script>
 
 <style lang="scss" scoped>
+	.pop-box {
+		position: relative;
+	}
+
+	.box-close {
+		position: absolute;
+		top: 24rpx;
+		right: 22rpx;
+	}
+
 	.swiper {
 		width: 702rpx;
 		height: 280rpx;

+ 12 - 0
pages.json

@@ -282,6 +282,12 @@
 					"style": {
 						"navigationBarTitleText": "跑腿代拿"
 					}
+				},
+				{
+					"path": "run-errands-mod/pay-page",
+					"style": {
+						"navigationBarTitleText": "跑腿支付"
+					}
 				}
 			]
 		},
@@ -315,6 +321,12 @@
 						"navigationBarTitleText": "团购详情"
 					}
 				},
+				{
+					"path": "run-errands-info",
+					"style": {
+						"navigationBarTitleText": "跑腿详情"
+					}
+				},
 				{
 					"path": "ticket-info",
 					"style": {

+ 95 - 68
pages/order/index.vue

@@ -8,8 +8,8 @@
 			</template>
 		</Nav>
 		<view class="nav-box box-border-box bgc-f display-flex">
-			<view class="nav-item flex-1 text-align-center" :class="type == item.id?'fs-36 fw-600':'fs-34 fw-400'" v-for="(item,i) in navList"
-				:key="i" @click="selectType(item.id)">
+			<view class="nav-item flex-1 text-align-center" :class="type == item.id?'fs-36 fw-600':'fs-34 fw-400'"
+				v-for="(item,i) in navList" :key="i" @click="selectType(item.id)">
 				{{item.name}}
 				<view v-if="type == item.id" class="nav-item-x"></view>
 			</view>
@@ -40,6 +40,9 @@
 							</image>
 							<image v-else-if="item.shop_logo" class="shops-img" :src="item.shop_logo" mode="aspectFit">
 							</image>
+							<image v-else-if="item.errands.img" class="shops-img" :src="item.errands.img"
+								mode="aspectFit">
+							</image>
 							<image v-else class="shops-img" src="@/static/img/logo/logo.png" mode=""></image>
 							<view v-if="item.site_name" class="fs-32 fc-3 fw-600 shops-name text-overflow-ellipsis-one">
 								{{item.site_name}}
@@ -48,6 +51,10 @@
 								class="fs-32 fc-3 fw-600 shops-name text-overflow-ellipsis-one">
 								{{item.shop_name}}
 							</view>
+							<view v-else-if="item.errands.name"
+								class="fs-32 fc-3 fw-600 shops-name text-overflow-ellipsis-one">
+								{{item.errands.name}}
+							</view>
 							<view v-else class="fs-32 fc-3 fw-600 shops-name text-overflow-ellipsis-one">
 								君子校园
 							</view>
@@ -79,6 +86,18 @@
 								</view>
 							</view>
 						</view>
+						<view class="" v-else-if='type == 3'>
+							<view class="align-items-center">
+								<image class="goods-img flex-shrink0" :src="item.goods_img" mode="aspectFit">
+								</image>
+								<view class="fs-28 fc-6 text-overflow-ellipsis">
+									{{item.goods_name}}
+								</view>
+							</view>
+						</view>
+						<view class="" v-else='type === 4'>
+							{{item.serve_desc}}
+						</view>
 						<view class="goods-box" v-else>
 							<view class="align-items-center">
 								<image class="goods-img flex-shrink0" :src="item.goods_img" mode="aspectFit">
@@ -88,7 +107,7 @@
 								</view>
 							</view>
 						</view>
-						<view class="goods-num text-align-center">
+						<view class="goods-num text-align-center" v-if="type != 4">
 							共 {{item.goods_number}} 件
 						</view>
 					</view>
@@ -112,8 +131,8 @@
 							取消订单
 						</view>
 						<view class="item-but but-class-two fs-28 mr-18" @click.stop="cancel(item)"
-							v-if="type == 5 && item.order_status == 2">
-							<!-- 干洗 -->
+							v-if="type == 4 && item.order_status == 2">
+							<!-- 跑腿 -->
 							取消订单
 						</view>
 						<view class="item-but but-class-two fs-28 mr-18" @click.stop="expressCancel(item)"
@@ -149,9 +168,9 @@
 							<!-- 团购 -->
 							再来一单
 						</view>
-						<view @click.stop="goToUrl('ticket', item)" class="item-but but-class-one fs-28 mr-18"
+						<view @click.stop="goToUrl('errands', item)" class="item-but but-class-one fs-28 mr-18"
 							v-if="type == 4 && item.order_status == 2 || type == 4 && item.order_status == 4">
-							<!-- 票务 -->
+							<!-- 跑腿 -->
 							再来一单
 						</view>
 						<view @click.stop="goToUrl('laundry', item)" class="item-but but-class-one fs-28 mr-18"
@@ -172,7 +191,7 @@
 				</view>
 			</view>
 		</uni-popup>
-		<uni-popup ref="popupReason" type="bottom" background-color="#fff" border-radius="10px 10px 0 0">
+		<uni-popup ref="popupReason" type="bottom" :is-mask-click="false" background-color="#fff" border-radius="10px 10px 0 0">
 			<view class="popup-reason-box flex-direction">
 				<view class="text-align-center fs-38 fw-600 fc-3 mb-18">
 					选择取消原因
@@ -180,7 +199,8 @@
 				<picker-view @change="bindChange" class="picker-view flex-1" :immediate-change='true'>
 					<picker-view-column>
 						<view class="picker-view-item" v-for="(item,index) in refundReason" :key="index">
-							{{item.refund_msg}}</view>
+							{{item.refund_msg}}
+						</view>
 					</picker-view-column>
 				</picker-view>
 				<view class="align-items-center flex-justify-space">
@@ -220,17 +240,16 @@
 	import {
 		groupPay
 	} from '@/api/groupOrder.js';
+	import {
+		errandsOrderStatus,
+		errandsOrderPay,
+		errandsOrderList,
+		errandsOrderCancel
+	} from "@/api/errandsOrder.js"
 	import {
 		groupOrderStatus,
 		groupOrderList
 	} from "@/api/groupOrder.js"
-	import {
-		ticketPay
-	} from '@/api/ticket.js';
-	import {
-		ticketOrderStatus,
-		ticketOrderList
-	} from "@/api/ticketOrder.js"
 	import {
 		laundryOrderStatus,
 		laundryOrderList,
@@ -255,6 +274,10 @@
 					{
 						name: '团购',
 						id: 3
+					},
+					{
+						name: '跑腿',
+						id: 4
 					}
 				],
 				page: 1,
@@ -355,9 +378,9 @@
 					uni.navigateTo({
 						url: '/pages-buy/group-shop?shop_id=' + item.shop_id
 					})
-				} else if (type == 'ticket') {
+				} else if (type == 'errands') {
 					uni.navigateTo({
-						url: '/pages-buy/ticket'
+						url: '/pages-takeout/run-errands'
 					})
 				} else if (type == 'laundry') {
 					uni.navigateTo({
@@ -380,7 +403,7 @@
 					})
 				} else if (this.type === 4) {
 					uni.navigateTo({
-						url: `/pages-order/ticket-info?orderId=` + item.id
+						url: `/pages-order/run-errands-info?orderId=` + item.id
 					})
 				} else if (this.type === 5) {
 					uni.navigateTo({
@@ -398,7 +421,7 @@
 				} else if (this.type === 3) {
 					this.groupPay(item.id)
 				} else if (this.type === 4) {
-					this.ticketPay(item.id)
+					this.errandsOrderPay(item.id)
 				} else if (this.type === 5) {
 					this.laundryPay(item.id)
 				}
@@ -415,7 +438,7 @@
 					} else if (this.type === 3) {
 						this.groupOrderList()
 					} else if (this.type === 4) {
-						this.ticketOrderList()
+						this.errandsOrderList()
 					} else if (this.type === 5) {
 						this.laundryOrderList()
 					}
@@ -499,13 +522,13 @@
 							this.isAJAX = false;
 						}
 					})
-				} else if(this.sureType === 3) {
-					//干洗退款
+				} else if (this.sureType === 3) {
+					//跑腿退款
 					if (this.isAJAX) {
 						return
 					}
 					this.isAJAX = true;
-					laundryOrderCancel({
+					errandsOrderCancel({
 						order_id: this.order_id,
 						refund_msg: this.refund_msg
 					}).then((res) => {
@@ -516,7 +539,7 @@
 							setTimeout(() => {
 								this.page = 1;
 								this.list = [];
-								this.laundryOrderList()
+								this.errandsOrderList()
 							}, 1500)
 							this.isAJAX = false;
 						} else {
@@ -615,7 +638,7 @@
 				// });
 			},
 			cancel(item) {
-				// 干洗取消订单
+				// 跑腿取消订单
 				uni.hideTabBar()
 				this.sureType = 3
 				this.order_id = item.id
@@ -665,7 +688,7 @@
 				} else if (this.type === 3) {
 					this.groupOrderList()
 				} else if (this.type === 4) {
-					this.ticketOrderList()
+					this.errandsOrderList()
 				} else if (this.type === 5) {
 					this.laundryOrderList()
 				}
@@ -682,8 +705,8 @@
 					this.groupOrderStatus()
 					this.groupOrderList()
 				} else if (this.type === 4) {
-					this.ticketOrderStatus()
-					this.ticketOrderList()
+					this.errandsOrderStatus()
+					this.errandsOrderList()
 				} else if (this.type === 5) {
 					this.laundryOrderStatus()
 					this.laundryOrderList()
@@ -713,9 +736,9 @@
 					}
 				})
 			},
-			ticketOrderStatus() {
-				// 票务订单状态
-				ticketOrderStatus().then((res) => {
+			errandsOrderStatus() {
+				// 跑腿订单状态
+				errandsOrderStatus().then((res) => {
 					if (res.code == 1) {
 						this.navTypeData = res.data
 					}
@@ -768,9 +791,9 @@
 					}
 				})
 			},
-			ticketOrderList() {
+			errandsOrderList() {
 				// 票务订单列表
-				ticketOrderList({
+				errandsOrderList({
 					status: this.navTypeKey,
 					page: this.page
 				}).then((res) => {
@@ -911,40 +934,44 @@
 				// 	}
 				// })
 			},
-			ticketPay(id) {
-				// 票务支付
-				if (this.isAJAX) {
-					return
-				}
-				this.isAJAX = true;
-				ticketPay({
-					order_id: id
-				}).then((ret) => {
-					if (ret.code === 1) {
-						uni.requestPayment({
-							provider: "wxpay", //支付类型-固定值
-							timeStamp: ret.data.wx_pay.timeStamp + "", // 时间戳(单位:秒)
-							nonceStr: ret.data.wx_pay.nonceStr, // 随机字符串
-							package: ret.data.wx_pay.package, // 固定值
-							signType: ret.data.wx_pay.signType, //固定值
-							paySign: ret.data.wx_pay.paySign, //签名
-							success: (ren) => {
-								tools.success("支付成功");
-								this.isAJAX = false;
-								this.page = 1;
-								this.list = [];
-								this.ticketOrderList()
-							},
-							fail: (err) => {
-								this.isAJAX = false;
-								tools.error("支付失败");
-							},
-						});
-					} else {
-						this.isAJAX = false;
-						tools.error("支付失败");
-					}
-				})
+			errandsOrderPay(id) {
+				// 跑腿支付
+				uni.redirectTo({
+					url: `/pages-takeout/run-errands-mod/pay-page?orderId=${id}`
+				});
+				return
+				// if (this.isAJAX) {
+				// 	return
+				// }
+				// this.isAJAX = true;
+				// errandsOrderPay({
+				// 	order_id: id
+				// }).then((ret) => {
+				// 	if (ret.code === 1) {
+				// 		uni.requestPayment({
+				// 			provider: "wxpay", //支付类型-固定值
+				// 			timeStamp: ret.data.wx_pay.timeStamp + "", // 时间戳(单位:秒)
+				// 			nonceStr: ret.data.wx_pay.nonceStr, // 随机字符串
+				// 			package: ret.data.wx_pay.package, // 固定值
+				// 			signType: ret.data.wx_pay.signType, //固定值
+				// 			paySign: ret.data.wx_pay.paySign, //签名
+				// 			success: (ren) => {
+				// 				tools.success("支付成功");
+				// 				this.isAJAX = false;
+				// 				this.page = 1;
+				// 				this.list = [];
+				// 				this.errandsOrderList()
+				// 			},
+				// 			fail: (err) => {
+				// 				this.isAJAX = false;
+				// 				tools.error("支付失败");
+				// 			},
+				// 		});
+				// 	} else {
+				// 		this.isAJAX = false;
+				// 		tools.error("支付失败");
+				// 	}
+				// })
 			},
 			laundryPay(id) {
 				// 干洗支付