zhanghui vor 2 Jahren
Ursprung
Commit
2ea51fced2

+ 18 - 3
orderPages/bookService/index.vue

@@ -231,7 +231,14 @@
 			},
 
 			selectServiceObject(item) {
-				console.log(item)
+				if (!this.serviceTeacherList || this.serviceTeacherList.length==0){
+					uni.showToast({
+						icon: 'none',
+						duration: 2000,
+						title: '暂无可预约排班'
+					});
+					return
+				}
 				if (item.select) {
 					this.orderParam.childService = this.orderParam.childService.filter(selectServiceObject =>
 						selectServiceObject.serviceObjectId !== item.id)
@@ -242,8 +249,16 @@
 						date: this.periodDate.label,
 						storeId:this.store.storeId
 					}).then(res => {
+						if (!res.data.data || res.data.data.length==0){
+							uni.showToast({
+								icon: 'none',
+								duration: 2000,
+								title: '暂无可预约排班'
+							});
+							return
+						}
+						item.select = !item.select
 						let periodTimeList = res.data.data
-
 						let selectServiceObjectList = this.orderParam.childService
 
 
@@ -307,7 +322,7 @@
 					})
 
 				}
-				item.select = !item.select
+
 				this.price = 0
 				for (let childService of this.orderParam.childService) {
 					this.price =  this.price * 1 + childService.fee * 1

+ 9 - 15
orderPages/orderDetail/index.rpx.scss

@@ -59,13 +59,6 @@
   color: #333333;
   line-height: 40rpx;
 }
-.orderNo{
-  font-size: 28rpx;
-  font-family: PingFangSC, PingFang SC;
-  font-weight: 400;
-  color: #333333;
-  line-height: 60rpx;
-}
 .key{
   font-size: 24rpx;
   font-family: PingFangSC-Regular, PingFang SC;
@@ -123,7 +116,9 @@
   background: #EEEEEE;
   margin-top: 32rpx;
 }
-
+.right{
+  width: 620rpx;
+}
 .projectState{
   font-size: 24rpx;
   font-family: PingFangSC-Regular, PingFang SC;
@@ -133,10 +128,10 @@
 }
 
 .projectMoney{
-  height: 44rpx;
   font-size: 28rpx;
-  font-weight: 600;
-  color: #ED569F;
+  font-family: PingFangSC-Medium, PingFang SC;
+  font-weight: 500;
+  color: #353535;
   line-height: 44rpx;
 }
 
@@ -228,10 +223,9 @@
   text-align: center;
 }
 .borderBottom{
-  margin-top: 24rpx;
-  border-top:  1px solid #F7F7F7;
-  padding: 24rpx 0;
-
+  margin-top: 32rpx;
+  border-bottom:  1px solid #F7F7F7;
+  padding-bottom: 32rpx;
 }
 .appealView{
   width: 700rpx;

+ 175 - 129
orderPages/orderDetail/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<view class="page">
+	<view class="page" >
 		<view class="state ">
 			<view class="flex-row justify-center">
 				<u-icon name="cut" color="#93D21A" size="18"></u-icon>
@@ -13,17 +13,21 @@
 			<view :class="order.serviceAttribute == 1? 'serviceAttrDesc':'serviceAttrDesc1'">
 				<text>{{order.serviceAttrDesc}}</text>
 			</view>
-			<view class="flex-row justify-start orderNo">
-				<text>订单编号:</text>
-				<text>{{order.orderNo}}</text>
+			<view class="flex-row justify-start">
+				<u-icon name="/static/index/u217.png" color="#93D21A" size="18"></u-icon>
+				<text class="key">订单编号:</text>
+				<text class="value">{{order.orderNo}}</text>
+			</view>
+			<view>
+				<text  class="serviceType">{{order.serviceType}}</text>
 			</view>
 
 			<view class="flex-row justify-between  jishi">
 				<view class="flex-col ">
 					<view class=" flex-row">
 						<u-icon name="/static/order/ud1.png" color="#93D21A" size="18"></u-icon>
-						<text class="key">服务日期:</text>
-						<text class="value">{{order.serviceDate || ''}}</text>
+						<text  class="key">服务对象:</text>
+						<text  class="value">{{order.serviceObjectName || ''}}</text>
 					</view>
 					<view class="flex-row">
 						<u-icon name="/static/order/ud2.png" color="#93D21A" size="18"></u-icon>
@@ -31,56 +35,103 @@
 						<text class="value">{{order.storeName}}</text>
 					</view>
 					<view class="flex-row">
-						<u-icon name="/static/order/ud14.png" size="16"></u-icon>
+						<u-icon name="clock" size="16"></u-icon>
 						<text class="key">下单时间:</text>
 						<text class="value">{{order.createTime}}</text>
 					</view>
 				</view>
+
+				<view class="flex-col justify-center " v-if="order.serviceAttribute == 1">
+					<view class="planNumber flex-row justify-center">
+						<text>{{order.planNumber}}</text>
+					</view>
+					<view class="plan flex-row justify-center">
+						<text class="plan">排号</text>
+					</view>
+				</view>
 			</view>
 
 
-			<view class="flex-col borderBottom " v-for="(item,index) in order.child" :key="index">
-				<view class="flex-row justify-between ">
-					<text class="serviceType">排号:{{item.planNumber || ''}}</text>
-					<text class="projectState">{{item.statusDesc}}</text>
+			<view class="flex-row justify-between yuyue " v-if="order.serviceAttribute == 2">
+				<view class="flex-col justify-center ">
+					<view class=" flex-row">
+
+						<u-icon name="clock" size="16"></u-icon>
+						<text  class="key">服务日期:</text>
+						<text  class="value">{{order.serviceDate}}</text>
+					</view>
+					<view class="flex-row">
+						<u-icon name="/static/order/ud2.png" color="#93D21A" size="18"></u-icon>
+						<text class="key">服务时段:</text>
+						<text class="value">{{order.serviceStartTime}}</text>
+					</view>
+					<view class="flex-row">
+						<u-icon name="/static/order/ud3.png" color="#93D21A" size="18"></u-icon>
+						<text class="key">服务人员:</text>
+						<text class="value">{{order.servicePersonName}}</text>
+					</view>
 				</view>
 
-				<view class="box_11">
-					<view class="group_2"></view>
-					<view class="group_3">
-						<view class="flex-row">
-							<u-icon name="/static/order/ud22.png" size="16"></u-icon>
-							<text class="key">服务项目:</text>
-							<text class="value">{{item.serviceName || ''}}</text>
-						</view>
-						<view class="flex-row">
-							<u-icon name="/static/order/ud21.png" size="16"></u-icon>
-							<text class="key">服务对象:</text>
-							<text class="value">{{item.serviceObjectName || ''}}</text>
-						</view>
-						<view class="flex-row">
-							<u-icon name="/static/order/ud14.png" size="16"></u-icon>
-							<text class="key">服务时段:</text>
-							<text class="value">{{item.serviceRangeTime || ''}}</text>
-						</view>
-						<view class="flex-row">
-							<u-icon name="/static/order/ud3.png" size="16"></u-icon>
-							<text class="key">服务人员:</text>
-							<text class="value">{{item.servicePerson || ''}}</text>
-						</view>
+				<view class="flex-col justify-center ">
+					<view class="planNumber flex-row justify-center">
+						<text>{{order.planNumber}}</text>
+					</view>
+					<view class="plan flex-row justify-center">
+						<text class="plan">预约号</text>
 					</view>
 				</view>
-				<view class="flex-row justify-between">
-					<view>
+			</view>
+
+
+
+			<view class="flex-row justify-center"  v-if="order.canScanCode">
+				<view class="scan flex-row justify-center" @click="scanCodeOrder(order)">
+					<u-icon name="scan" size="18"></u-icon>
+					<text>扫码</text>
+				</view>
+			</view>
+			<view class="line"></view>
+
+			<view class="flex-row justify-between borderBottom" v-for="(item,index) in order.child" :key="index">
+				<!--                            <view class="flex-col justify-center" v-if="order.orderStatus != 3">-->
+				<!--                                <u-icon v-if="item.tick" name="checkmark-circle-fill" color="#38db38" size="20" @click="tick(item,index)"></u-icon>-->
+				<!--                                <u-icon v-else name="/static/order/ud9.png" color="green" size="20" @click="tick(item,index)"></u-icon>-->
+				<!--                            </view>-->
+
+				<view class="flex-col right">
+					<view class="flex-row justify-between">
+						<text class="serviceType">{{item.serviceName}}</text>
+						<text class="projectState">{{item.statusDesc}}</text>
+					</view>
 
-						<text class="key">服务金额:</text>
-						<text class="projectMoney">¥{{item.servicePrice}}</text>
-						<!--                                      <text  class="lineMoney">¥{{item.servicePrice}}</text>-->
+					<view class="box_11">
+						<view class="group_2"></view>
+						<view class="group_3">
+							<view class="flex-row">
+								<u-icon name="server-man" size="16"></u-icon>
+								<text class="key">服务人员:</text>
+								<text class="value">{{item.servicePerson || ''}}</text>
+							</view>
+							<view class="flex-row">
+								<u-icon name="clock" size="16"></u-icon>
+								<text class="key">服务时间:</text>
+								<text class="value">{{item.serviceTime || ''}}</text>
+							</view>
+						</view>
 					</view>
+					<view class="flex-row justify-between">
+						<view v-if="item.discountAmount > 0">
+							<text  class="projectMoney">¥{{item.payAmount}}</text>
+							<text  class="lineMoney">¥{{item.servicePrice}}</text>
+						</view>
+						<view v-else>
+							<text  class="projectMoney">¥{{item.servicePrice}}</text>
+						</view>
 
-					<view v-if="item.status == 2" class="flex-row" @click="appeal(item.orderServiceId)">
-						<u-icon name="/static/order/ud17.png" color="#93D21A" size="14"></u-icon>
-						<text class="ss_key">申诉</text>
+						<view class="flex-row" v-if="item.status === 1" @click="appeal(item.orderServiceId)">
+							<u-icon name="/static/order/ud17.png" color="#93D21A" size="14"></u-icon>
+							<text  class="ss_key">申诉</text>
+						</view>
 					</view>
 				</view>
 			</view>
@@ -88,27 +139,27 @@
 
 		<view class="bottomHeight"></view>
 
-		<view class="bottom1 flex-col" v-if="canPay">
+		<view class="bottom1 flex-col"  v-if="order.orderStatus == 6 ">
 			<text class="allMoney"></text>
 			<view class="bottomBtn flex-row justify-between">
 				<view class=" flex-row">
-					<text class="unpaid">合计</text>
-					<text class="preferentialPrice">¥{{allPrice}}</text>
-					<text class="unpaid">已优惠</text>
-					<text class="originalPrice">¥{{totalDiscount}}</text>
+					<text  class="unpaid">合计</text>
+					<text  class="preferentialPrice">¥{{allPrice}}</text>
+					<text  class="unpaid">已优惠</text>
+					<text  class="originalPrice">¥{{totalDiscount}}</text>
 					<!--                        <text  class="priceDetail">价格明细</text>-->
 				</view>
 
-				<view  class="btn" @click="qenPayInfo">
-					<text class="text_33">结 算</text>
+				<view v-if="order.canPay" class="btn" @click="qenPayInfo">
+					<text class="text_33">一键付款</text>
+				</view>
+				<view v-else class="btn" @click="orderFinish">
+					<text  class="text_33">结束订单</text>
 				</view>
-<!--				<view v-else class="btn" @click="orderFinish">-->
-<!--					<text class="text_33">结束订单</text>-->
-<!--				</view>-->
 			</view>
 		</view>
 
-		<uni-popup ref="appealPopup" :animation="false" :catchtouchmove="true">
+		<uni-popup ref="appealPopup"  :animation="false" :catchtouchmove="true">
 
 			<view class="appealView flex-col justify-around">
 				<view class="popupTitle">
@@ -116,7 +167,7 @@
 				</view>
 
 				<view class="lex-row justify-center">
-					<textarea class="textarea" v-model="appealReason" placeholder="请输入申诉理由"></textarea>
+					<textarea class="textarea" v-model="appealReason"  placeholder="请输入申诉理由"></textarea>
 				</view>
 
 
@@ -155,7 +206,7 @@
 					</view>
 
 					<view class="flex-col justify-center">
-						<view v-if="curServiceTab === 1">
+						<view v-if="curServiceTab === 1" >
 							<u-icon name="checkmark-circle-fill" color="#38db38" size="25"></u-icon>
 						</view>
 						<view v-else>
@@ -172,7 +223,7 @@
 						</view>
 					</view>
 					<view class="flex-col justify-center">
-						<view v-if="curServiceTab === 2">
+						<view v-if="curServiceTab === 2" >
 							<u-icon name="checkmark-circle-fill" color="#38db38" size="25"></u-icon>
 						</view>
 						<view v-else>
@@ -195,7 +246,7 @@
 					<text>请输入交易密码</text>
 				</view>
 				<view class="h-tab-bar flex-row justify-center">
-					<u-code-input v-model="password" mode="box" dot></u-code-input>
+					<u-code-input  v-model="password" mode="box" dot></u-code-input>
 				</view>
 				<view class="flex-row justify-center">
 					<view class="h-operate-btn flex-row justify-center" @click="balancePay">
@@ -219,25 +270,25 @@
 			return {
 				title: 'Hello',
 				tabIndex: 3,
-				order: {},
-				allPrice: 0,
-				totalDiscount: 0,
-				appealId: '',
-				appealReason: '',
-				orderId: '',
-				curServiceTab: 2,
-				userInfo: {},
-				tradeNo: '',
-				password: '',
-				requestStatus: false
+				order:{},
+				allPrice:0,
+				totalDiscount:0,
+				appealId:'',
+				appealReason:'',
+				orderId:'',
+				curServiceTab:2,
+				userInfo:{},
+				tradeNo:'',
+				password:'',
+				requestStatus : false
 			}
 		},
 		onLoad(e) {
 			this.orderId = e.id
 			this.getUserInfo();
 		},
-		onShow() {
-			this.getOrderDetailByOrderId(this.orderId)
+		onShow(){
+			this.getOrderDetailByOrderId(this.orderId )
 		},
 		methods: {
 			getUserInfo() {
@@ -246,7 +297,7 @@
 					uni.setStorageSync('userInfo', res.data.data);
 				});
 			},
-			balancePay() {
+			balancePay(){
 
 				let that = this;
 				// if(this.password.length< 6 ){
@@ -260,30 +311,30 @@
 				this.$api.trade({
 					tradeNo: this.tradeNo,
 					password: ''
-				}).then((res) => {
-					this.requestStatus = false
+				}).then((res)=>{
+					this.requestStatus=false
 					uni.hideLoading();
 					uni.showToast({
 						title: '支付成功!'
 					});
 					that.$refs.popup.close()
 					that.getOrderDetailByOrderId(that.orderId)
-				}).catch((err) => {
-					this.requestStatus = false
+				}).catch((err)=>{
+					this.requestStatus=false
 					uni.hideLoading();
 					uni.showToast({
 						title: err.msg,
-						icon: 'error'
+						icon:'error'
 					})
 				})
 			},
 
-			scanCodeOrder(order) {
+			scanCodeOrder(order){
 				uni.scanCode({
 					scanType: ['qrCode'],
-					success: function(res) {
+					success: function (res) {
 						let json = JSON.parse(res.result)
-						if (json.storeId != order.storeId) {
+						if(json.storeId != order.storeId){
 							uni.showToast({
 								icon: 'error',
 								duration: 3000,
@@ -292,44 +343,40 @@
 							return
 						}
 						uni.navigateTo({
-							url: '/orderPages/serviceItems/index?serviceStationId=' + json.stationId +
-								'&orderId=' + order.orderId + '&serviceObjectId=' + order
-								.serviceObjectId
+							url:'/orderPages/serviceItems/index?serviceStationId='+ json.stationId + '&orderId='+order.orderId + '&serviceObjectId=' + order.serviceObjectId
 						})
 					}
 				})
 			},
 
-			commonGeneralOrder() {
-				if (this.requestStatus) {
+			commonGeneralOrder(){
+				if(this.requestStatus){
 					return;
 				}
-				this.requestStatus = true
+				this.requestStatus=true
 				uni.showLoading({
 					title: '支付中'
 				});
-				let that = this
-				if (this.curServiceTab === 1) {
+				let that =this
+				if (this.curServiceTab===1){
 					// that.password = '';
 					// this.$refs.popup.close()
 					// this.$refs.passwordPopup.open()
 
 					this.balancePay()
 
-				} else {
-					this.$api.wechatPayTradeNo({
-						tradeNo: this.tradeNo
-					}).then(res => {
+				}else {
+					this.$api.wechatPayTradeNo({tradeNo:this.tradeNo}).then(res=>{
 						var param = res.data.data;
 						uni.requestPayment({
 							appId: param.appid,
-							timeStamp: param.timestamp + "",
+							timeStamp: param.timestamp+"",
 							nonceStr: param.noncestr,
-							package: "prepay_id=" + param.prepayid,
+							package: "prepay_id="+param.prepayid,
 							signType: "RSA",
 							paySign: param.sign,
 							success: res => {
-								this.requestStatus = false
+								this.requestStatus=false
 								uni.hideLoading();
 								uni.showToast({
 									title: '支付成功!'
@@ -338,7 +385,7 @@
 								that.$refs.popup.close()
 							},
 							fail: res => {
-								this.requestStatus = false
+								this.requestStatus=false
 								uni.hideLoading();
 								uni.showModal({
 									content: '支付失败',
@@ -351,17 +398,17 @@
 				}
 			},
 
-			orderFinish() {
-				this.$api.orderFinish(this.order.orderNo).then((res) => {
+			orderFinish(){
+				this.$api.orderFinish(this.order.orderNo).then((res)=>{
 					uni.$u.toast('操作成功')
 					this.getOrderDetailByOrderId(this.order.orderId)
 				})
 			},
 
-			qenPayInfo() {
+			qenPayInfo(){
 
-				for (let i = 0; i < this.order.child.length; i++) {
-					if (this.order.child[i].status == 3) {
+				for(let i=0;i<this.order.child.length;i++){
+					if (this.order.child[i].status==3){
 						uni.$u.toast('子订单未审核结束')
 						return
 					}
@@ -369,37 +416,37 @@
 
 				this.getUserInfo();
 				let orderServiceIds = []
-				this.order.child.forEach(i => {
-					if (i.status != 5) { //排除审核通过的子订单
+				this.order.child.forEach(i=>{
+					if (i.status !=5){ //排除审核通过的子订单
 						orderServiceIds.push(i.orderServiceId)
 					}
 				})
 				this.$api.qenPayInfo({
-					orderServiceIds: orderServiceIds,
-					orderNo: this.order.orderNo
-				}).then(res => {
-					this.tradeNo = res.data.data.tradeNo
+					orderServiceIds:orderServiceIds,
+					orderNo:this.order.orderNo
+				}).then(res=>{
+					this.tradeNo=res.data.data.tradeNo
 					this.$refs.popup.open()
 				})
 			},
 
-			commitAppeal() {
+			commitAppeal(){
 				this.$api.appeal({
-					childOrderId: this.appealId,
-					appealReason: this.appealReason
-				}).then(res => {
-					this.appealReason = ''
+					childOrderId:this.appealId,
+					appealReason:this.appealReason
+				}).then(res=>{
+					this.appealReason=''
 					uni.$u.toast('申诉已提交')
 					this.$refs.appealPopup.close()
 					this.getOrderDetailByOrderId(this.orderId)
 				})
 			},
-			appealPopupClose() {
-				this.appealReason = ''
+			appealPopupClose(){
+				this.appealReason=''
 				this.$refs.appealPopup.close()
 			},
 
-			appeal(id) {
+			appeal(id){
 				this.appealId = id
 				this.$refs.appealPopup.open()
 			},
@@ -426,38 +473,38 @@
 
 
 			//新的价格计算逻辑  订单加载或刷新的时候计算
-			calculatePrice() {
+			calculatePrice(){
 				this.allPrice = 0
 				this.totalDiscount = 0;
-				this.order.child.forEach(i => {
-					if (i.status != 5) { //不在申诉的子订单
+				this.order.child.forEach(i=>{
+					if (i.status !=5){ //不在申诉的子订单
 						this.totalDiscount += i.discountAmount * 1;
-						this.allPrice += i.payAmount * 1;
+						this.allPrice += i.payAmount *1;
 					}
 				})
 				this.allPrice = this.allPrice.toFixed(2)
 				this.totalDiscount = this.totalDiscount.toFixed(2)
 			},
 
-			getOrderDetailByOrderId(id) {
+			getOrderDetailByOrderId(id){
 				this.$api.getOrderDetailByOrderId({
-					id: id
-				}).then(res => {
-					this.order = res.data.data
+					id:id
+				}).then(res=>{
+					this.order= res.data.data
 					this.calculatePrice()
 				})
 			},
-			payItem(num) {
-				console.log('this.userInfo.balance', this.userInfo.balance * 1)
-				console.log('this.price', this.allPrice * 1)
+			payItem(num){
+				console.log('this.userInfo.balance',this.userInfo.balance*1)
+				console.log('this.price',this.allPrice*1)
 
-				if (this.userInfo.balance * 1 < this.allPrice * 1 && num == 1) {
+				if (this.userInfo.balance*1 < this.allPrice*1 && num == 1){
 					return
 				}
 				this.curServiceTab = num
 			},
 
-			closePayPopup() {
+			closePayPopup(){
 				this.$refs.popup.close()
 			},
 		}
@@ -466,5 +513,4 @@
 
 <style>
 	@import '/common/css/common.css';
-	@import './index.rpx.scss';
-</style>
+	@import './index.rpx.scss';</style>

+ 1 - 1
pages.json

@@ -28,7 +28,7 @@
 		{
 			"path": "pages/order/index",
 			"style": {
-				"navigationStyle": "custom",
+				"navigationBarTitleText": "订单",
 				"enablePullDownRefresh": false
 			}
 		},

+ 6 - 4
pages/order/index.rpx.scss

@@ -1,9 +1,5 @@
-.content{
-  background: linear-gradient(to bottom, #FFF1B6,#F8F6ED 20%, #F7F7F7);
-}
 .tabBarLineHeight {
   height: 138rpx;
-
 }
 
 .tabBarView {
@@ -392,6 +388,12 @@
   color: #93BC23;
 
 }
+
+.tabs{
+  background: #FFFFFF;
+}
+
+
 .payView{
   height: 638rpx;
   background: #FFFFFF;

+ 133 - 12
pages/order/index.vue

@@ -1,13 +1,25 @@
 <template>
 	<view class="content">
 
-			<View  :style="{'paddingTop':menuButtonBottom}">
+		<u-sticky>
+			<!--			<view ref="hContentWrap" class="hContentWrap h-content-wrap">-->
+			<!--				<view class="tab-bar">-->
+			<!--					<view class="tab-item" :class="{ active: currentTab === 0 }" @click="changeTab(0)">-->
+			<!--						服务订单-->
+			<!--					</view>-->
+			<!--					<view class="tab-item" :class="{ active: currentTab === 1 }" @click="changeTab(1)">-->
+			<!--						产品订单-->
+			<!--					</view>-->
+			<!--				</view>-->
+			<!--			</view>-->
+			<View class=" tabs">
 				<u-tabs :list="tabList" :scrollable="false" lineWidth="30" lineColor="#FFE05C" :activeStyle="{
             					color: '#333333',
             					fontWeight: 'bold',
             					transform: 'scale(1.05)'
        							 }" :current="tabIndex" @click="clickTab"></u-tabs>
 			</View>
+		</u-sticky>
 
 		<!-- 订单列表 -->
 		<view :style="{'height':windowHeight}">
@@ -21,6 +33,117 @@
 			</swiper>
 		</view>
 
+
+		<!--		<view class="product-order" v-if="currentTab === 1">-->
+		<!--			&lt;!&ndash; Tab 2 内容 &ndash;&gt;-->
+		<!--			<view class="developing">-->
+		<!--				<text>敬请期待...</text>-->
+		<!--			</view>-->
+		<!--		</view>-->
+
+
+		<uni-popup ref="serialNumber">
+			<view class="serial-number">
+				<view class="text">
+					<text>您的排队号</text>
+				</view>
+				<view class="number">
+					<text>{{ orderNumberData.schedulingNo }}</text>
+				</view>
+
+				<view v-if="orderNumberData.overNo" class="text1">
+					<text>已过号,请重新取号</text>
+				</view>
+
+				<view v-else class="text">
+					<text>前面还有{{ orderNumberData.waitNoNum }}人在等待</text>
+				</view>
+
+				<view class="text">
+					<text>随时关注小程序的排队进程,过号作废</text>
+				</view>
+
+				<!--				<view class="text">-->
+				<!--					<text>0851—85833828</text>-->
+				<!--				</view>-->
+			</view>
+		</uni-popup>
+
+		<uni-popup ref="popup" :catchtouchmove="true" :animation="false" type="bottom">
+
+			<view class=" payView">
+				<view class="flex-row justify-between">
+					<text class="payType">请选择支付方式</text>
+					<image class="x" src="/static/common/ox.png" @click="closePayPopup"></image>
+				</view>
+				<view class="payTitle">
+					<text>选择微信支付或余额支付</text>
+				</view>
+
+
+				<view class="payItem flex-row justify-between" @click="payItem(1)">
+					<view class="flex-row">
+						<u-icon name="/static/me/u701.png" color="#38db38" size="36"></u-icon>
+						<view class="payName flex-col justify-center">
+							<text>余额支付</text>
+							<text class="balance">可以余额¥{{userInfo.balance || 0}}</text>
+						</view>
+					</view>
+
+					<view class="flex-col justify-center">
+						<view v-if="curServiceTab === 1" >
+							<u-icon name="checkmark-circle-fill" color="#38db38" size="25"></u-icon>
+						</view>
+						<view v-else>
+							<u-icon name="/static/order/ud9.png" color="green" size="25"></u-icon>
+						</view>
+					</view>
+
+				</view>
+
+				<view class="payItem flex-row justify-between" @click="payItem(2)">
+					<view class="flex-row">
+						<u-icon name="weixin-circle-fill" color="#38db38" size="36"></u-icon>
+						<view class="payName flex-col justify-center">
+							<text>微信支付</text>
+						</view>
+					</view>
+					<view class="flex-col justify-center">
+						<view v-if="curServiceTab === 2" >
+							<u-icon name="checkmark-circle-fill" color="#38db38" size="25"></u-icon>
+						</view>
+						<view v-else>
+							<u-icon name="/static/order/ud9.png" color="green" size="25"></u-icon>
+						</view>
+					</view>
+				</view>
+
+				<view class="commitBtn" @click="commonGeneralOrder">
+					<text>确定</text>
+				</view>
+			</view>
+
+		</uni-popup>
+
+
+		<uni-popup ref="passwordPopup">
+			<view class="passwordView flex-col">
+				<view class="flex-row justify-center">
+					<text>请输入交易密码</text>
+				</view>
+				<view class="h-tab-bar flex-row justify-center">
+					<u-code-input  v-model="password" mode="box" dot></u-code-input>
+				</view>
+				<view class="flex-row justify-center">
+					<view class="h-operate-btn flex-row justify-center" @click="balancePay">
+						<text>确定</text>
+					</view>
+				</view>
+			</view>
+		</uni-popup>
+
+
+		<!--		<view class="tabBarLineHeight"></view>-->
 		<view class="tabBarView">
 			<tab-bar :tabIndex="tabBarIndex"></tab-bar>
 		</view>
@@ -62,8 +185,7 @@
 				password:'',
 				openType:0,//开启的支付类型:1一键支付子订单费用,2:支付预约费用
 				appointmentOrder:{},
-				requestStatus : false,
-				menuButtonBottom:'',
+				requestStatus : false
 
 			}
 		},
@@ -71,11 +193,10 @@
 			uni.hideTabBar({
 				animation: false
 			})
-			let menuButton  = uni.getMenuButtonBoundingClientRect()
-			console.log(menuButton)
-			this.menuButtonBottom = menuButton.bottom + 'px'
+
 			let sysInfo = uni.getSystemInfoSync()
-			this.windowHeight = sysInfo.windowHeight - menuButton.bottom - 74 + 'px' //除标题栏栏外的屏幕可用高度
+			console.log(sysInfo,'2222222222222222222222222')
+			this.windowHeight = sysInfo.windowHeight - 74 + 'px' //除标题栏栏外的屏幕可用高度
 			this.$off()
 			this.$on('orderListIndex',this.listenerIndex)
 		},
@@ -256,9 +377,9 @@
 					return;
 				}
 				this.requestStatus=true
-        uni.showLoading({
-          title: '支付中'
-        });
+				uni.showLoading({
+					title: '支付中'
+				});
 				let that =this
 				if (this.curServiceTab===1){
 					// this.$refs.popup.close()
@@ -283,7 +404,7 @@
 								paySign: param.sign,
 								success: res => {
 									this.requestStatus=false
-                  uni.hideLoading();
+									uni.hideLoading();
 									uni.showToast({
 										title: '支付成功!'
 									});
@@ -294,7 +415,7 @@
 								fail: res => {
 									console.log(res)
 									this.requestStatus=false
-                  uni.hideLoading();
+									uni.hideLoading();
 									uni.showToast({
 										title: '支付失败',
 										icon: 'error'

+ 1 - 2
pages/order/module/index.rpx.css

@@ -107,7 +107,7 @@
 /* 服务订单内容*/
 .service-order {
     margin-top: 24rpx;
-/* 门店列表 */
+    /* 门店列表 */
 }
 
 
@@ -285,7 +285,6 @@
 
 .item-text {
     color: #666666;
-    padding: 10rpx 0;
 }
 .item-v {
     font-family: PingFangSC-Medium, PingFang SC;

+ 166 - 135
pages/order/module/mescrollUni-item.vue

@@ -6,16 +6,16 @@
 	<!-- ref动态生成: 字节跳动小程序编辑器不支持一个页面存在相同的ref (如不考虑字节跳动小程序可固定值为 ref="mescrollRef") -->
 	<!-- top的高度等于悬浮菜单tabs的高度 -->
 	<mescroll-uni :ref="'mescrollRef' + i" @init="mescrollInit" :height="height" :down="downOption" @down="downCallback"
-		:up="upOption" @up="upCallback" @emptyclick="emptyClick">
+				  :up="upOption" @up="upCallback" @emptyclick="emptyClick">
 		<view>
 			<view class="service-order " v-for="(item,index) in list" :key="index">
-
+				<!-- 门店列表 -->
 				<view class="store-wrap" >
 					<view :class="{ 'grayscale': item.forstStatus === '1' }">
 						<view @click="orderDetail(item)" class="">
-							<view class="store-list ">
-								<view class="store-content ">
-									<view class="content ">
+							<view class="store-list">
+								<view class="store-content">
+									<view class="content">
 										<view class="desc flex-row justify-start ">
 											<view  :class="item.serviceAttribute == 1? 'service-type':'service-mode'">
 												{{item.serviceAttrDesc}}
@@ -27,65 +27,143 @@
 									<text class="h-text1">{{ item.forstStatus === '1' ? '已冻结' : item.orderStatusDesc }}</text>
 								</view>
 							</view>
-							<view class="order-state ">
+							<view class="order-state">
 								<view class="order-num">
 									<view class="h-order-num">
 										<image src="/static/index/u217.png" mode=""></image>订单编号:{{ item.orderNo }}
 									</view>
+<!--									<view class="h-order-text">-->
+<!--										<text> {{item.serviceType }} </text>-->
+<!--									</view>-->
 								</view>
+
+
 							</view>
 							<view class="flex-row justify-between ">
 								<view class="flex-col detail11 ">
-
-									<view class="item-text flex-row">
-										<u-icon name="/static/order/ud14.png" size="18"></u-icon>
-										服务日期:<text class="item-v">{{ item.serviceDate }}</text>
+									<view class="d-item-row ">
+										<view class="item-icon">
+											<image src="/static/order/ud1.png" mode=""></image>
+										</view>
+										<view class="item-text">
+											服务对象:<text class="item-v">{{ item.serviceObjectName }}</text>
+										</view>
 									</view>
-									<view class="item-text flex-row">
-										<u-icon name="/static/order/ud2.png" size="18"></u-icon>
-										服务门店:<text class="item-v">{{ item.storeName }}</text>
+									<view class="d-item-row ">
+										<view class="item-icon">
+											<image src="/static/order/ud2.png" mode=""></image>
+										</view>
+										<view class="item-text">
+											服务门店:<text class="item-v">{{ item.storeName }}</text>
+										</view>
 									</view>
-									<view class="item-text flex-row">
-										<u-icon name="/static/order/ud14.png" size="18"></u-icon>
-										下单时间:<text class="item-v">{{ item.createTime }}</text>
+									<view class="d-item-row ">
+										<view class="item-icon">
+											<image src="/static/order/ud14.png" mode=""></image>
+										</view>
+										<view class="item-text">
+											下单时间:<text class="item-v">{{ item.createTime }}</text>
+										</view>
+									</view>
+								</view>
+
+
+								<view class="flex-col justify-center" v-if="item.serviceAttribute == 1">
+									<view class="planNumber flex-row justify-center">
+										<text>{{ item.planNumber || '未排号' }}</text>
+									</view>
+
+									<view class="planNumber1 flex-row justify-center">
+										<text>排号</text>
 									</view>
 
 								</view>
+
+
+
 							</view>
+							<view class="detail flex-row justify-between" v-if="item.serviceAttribute == '2' " >
+								<view class="flexLR">
+									<view>
+										<view class="d-item-row ">
+											<view class="item-icon">
+												<image src="/static/order/ud3.png" mode=""></image>
+											</view>
+											<view class="item-text">
+												服务日期:<text class="item-v">{{item.serviceDate.substring(0,10) || ''}}</text>
+											</view>
+										</view>
+										<view class="d-item-row ">
+											<view class="item-icon">
+												<image src="/static/order/ud3.png" mode=""></image>
+											</view>
+											<view class="item-text">
+												服务时段:<text>{{item.serviceStartTime || ''}}</text>
+											</view>
+										</view>
+										<view class="d-item-row ">
+											<view class="item-icon">
+												<image src="/static/order/ud3.png" mode=""></image>
+											</view>
+											<view class="item-text">
+												服务技师:<text class="item-v">{{item.servicePersonName || '签到成功自动分配'}}</text>
+											</view>
+										</view>
+									</view>
+									<view class=" flex-col justify-center">
+										<view class="planNumber flex-row justify-center">
+											<text>{{ item.planNumber || '未排号' }}</text>
+										</view>
 
-							<view class="flex-row justify-end">
-								<view class="price" :style="{'padding-right':'40rpx'}" v-if="item.serviceAttribute == 2">
-									预约金额:<text class="fontColor"> ¥{{ item.subAmount || 0}}</text>
-								</view>
-								<view class="price">
-									订单总金额:<text class="fontColor"> ¥{{ item.payAmount || 0}}</text>
-									<text :style="{'text-decoration':'line-through','margin-left':'15rpx', 'font-size':'20rpx'}">¥{{ item.totalAmount || 0}}</text>
+										<view class="planNumber1 flex-row justify-center">
+											<text>预约号</text>
+										</view>
+									</view>
 								</view>
 							</view>
-
+							<view class="price" v-if="item.serviceAttribute == 2">
+								预约金额:<text class="fontColor"> ¥{{ item.subAmount || 0}}</text>
+							</view>
+							<view class="price">
+								订单总金额:<text class="fontColor"> ¥{{ item.payAmount || 0}}</text>
+								<text :style="{'text-decoration':'line-through','margin-left':'15rpx', 'font-size':'20rpx'}">¥{{ item.totalAmount || 0}}</text>
+							</view>
 						</view>
 						<view class="nav-bar">
+
 <!--							<view class="btn" v-if="!item.canPay && item.orderStatus == 6"  @click="orderFinish(item)">-->
 <!--								<text>结束订单</text>-->
 <!--							</view>-->
-							<view class="btn" v-if="item.canPay"  @click="oneClickPay(item)">
-								<text>一键付款</text>
-							</view>
+
 							<view class="btn" v-if="item.canCancel" @click="cancelOrder(item)">
 								<text>取消</text>
 							</view>
+							<view class="btn"  v-if="item.canPay"  @click="oneClickPay(item)">
+								<text>一键付款</text>
+							</view>
 							<view @click="appointment(item)" class="btn" v-if="item.orderStatus == 9">
 								<text>去支付预约费用</text>
 							</view>
-
+							<view class="btn" v-if="item.canSignIn"  @click="orderSign(item)">
+								<u-icon name="scan" size="18" />
+								<text>扫码签到</text>
+							</view>
+							<!--							<view @click="orderSign(item)" v-else-if="item.orderStatus == 4" class="btn">-->
+							<!--								立即排队-->
+							<!--								&lt;!&ndash; <text class="text1">点击开始排号</text> &ndash;&gt;-->
+							<!--							</view>-->
 <!--							<view @click="getOrderSign(item)" class="btn" v-else-if="item.orderStatus == 5">-->
 <!--								<text>点击查看排号</text>-->
 <!--							</view>-->
-
-							<view v-if="item.canSignIn" @click="orderSign(item)" class="btn">
-								<u-icon name="/static/order/saoma.png" color="#2979ff" size="20"></u-icon>
-								<text>扫码签到</text>
-							</view>
+							<!--							<view class="btn" v-else-if="item.orderStatus == 6">-->
+							<!--								<text>服务中</text>-->
+							<!--							</view>-->
+							<!--							<view class="btn" v-else-if="item.orderStatus == 7">-->
+							<!--								<text>排号过期</text>-->
+							<!--							</view>-->
+							<!--							<view @click="gotoEvaluate(item)" class="btn" v-else-if="item.orderStatus == 8">-->
+							<!--								<text>待评价</text>-->
+							<!--							</view>-->
 
 						</view>
 					</view>
@@ -95,27 +173,19 @@
 
 
 		</view>
-		<myPay ref="myPay" :blPay="blPay" :orderNo="orderNo" :openType="openType" :selectBlPay="selectBlPay" :balance="userInfo.balance" @payResult="payResult"></myPay>
+
 	</mescroll-uni>
 </template>
 
 <script>
-	import myPay from '../../../components/pay/pay';
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	import MescrollMoreItemMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js"
 	export default {
 		mixins: [MescrollMixin, MescrollMoreItemMixin], // 注意此处还需使用MescrollMoreItemMixin (必须写在MescrollMixin后面)
-		components: {
-			myPay
-		},
+		components: {},
 
 		data() {
 			return {
-				openType:1,
-				selectBlPay:true,
-				blPay:true,
-				orderNo:'',
-				userInfo:{},
 				downOption: {
 					auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)
 				},
@@ -171,41 +241,6 @@
 
 
 		methods: {
-			payResult(e){
-				if (e.payResult){
-					uni.showToast({
-						icon: 'success',
-						duration: 2000,
-						title: '付款成功'
-					});
-				}
-				this.downCallback()
-				this.getUserInfo()
-			},
-
-			orderSign(e){
-				let  that = this
-				uni.scanCode({
-					onlyFromCamera: true,
-					hideAlbum: true,
-					success: function (res) {
-						let result = JSON.parse(res.result)
-							that.$api.orderSign({
-								orderId:e.orderId,
-								storeId:result.storeId,
-								timestamp:result.timestamp
-							}).then(res1=>{
-								uni.showToast({
-									icon: 'success',
-									duration: 2000,
-									title: '签到成功'
-								});
-							})
-					}
-				});
-			},
-
-
 
 
 			orderFinish(item){
@@ -220,47 +255,46 @@
 			},
 
 			appointment(order){
-				//支付预约费用
-				this.blPay = false
-				this.orderNo = order.subOrderNo
-				this.openType = 1
-				this.$refs.myPay.openPopup()
+				this.$emit('openPayAppointment',order,2)
 			},
 
 			oneClickPay(order){
-				//支付订单费用
-				this.blPay = true
-				this.orderNo = order.orderNo
-				this.openType = 2
-				if (this.userInfo.balance *1 > order.payAmount *1){
-					this.selectBlPay = true
-				}else {
-					this.selectBlPay = false
-				}
-				this.$refs.myPay.openPopup()
+				this.$emit('openPay',order,1)
 			},
 
 
-      scanCodeOrder(item){
-      	let that = this
-        uni.scanCode({
-			scanType: ['qrCode'],
-          success: function (res) {
-				let json = JSON.parse(res.result)
-			  	if(json.storeId != item.storeId){
-					uni.showToast({
-						icon: 'error',
-						duration: 3000,
-						title: '请扫描订单门店二维码'
-					});
-					return
-				}
-			uni.navigateTo({
-				 url:'/orderPages/serviceItems/index?serviceStationId='+ json.stationId + '&orderId='+item.orderId + '&serviceObjectId=' + item.serviceObjectId
-			})
-          },
-        })
-      },
+			orderSign(e){
+				console.log('66666666666666')
+				let  that = this
+				uni.scanCode({
+					onlyFromCamera: true,
+					hideAlbum: true,
+					success: function (res) {
+						console.log('扫码+++++++++++++',res)
+						let result = JSON.parse(res.result)
+						that.$api.orderSign({
+							orderId:e.orderId,
+							storeId:result.storeId,
+							timestamp:result.timestamp
+						}).then(res1=>{
+							uni.showToast({
+								icon: 'success',
+								duration: 2000,
+								title: '签到成功'
+							});
+							that.downCallback()
+						})
+
+					},
+					fail:function (e) {
+						uni.showToast({
+							icon: 'fail',
+							duration: 2000,
+							title: '签到失败 '
+						});
+					}
+				});
+			},
 			/*下拉刷新的回调 */
 			downCallback() {
 				// 这里加载你想下拉刷新的数据, 比如刷新轮播数据
@@ -299,12 +333,7 @@
 
 			},
 
-			getUserInfo() {
-				this.$api.getUserInfo().then(res => {
-					this.userInfo = res.data.data
-					uni.setStorageSync('userInfo', res.data.data)
-				})
-			},
+
 
 			//点击空布局按钮的回调
 			emptyClick() {
@@ -319,24 +348,26 @@
 			},
 
 			cancelOrder(item){
+				console.log('++++++++++++++++++++',item)
 				uni.showModal({
-				  content: '请确认是否取消订单!',
-				  success: function (res) {
-					if (res.confirm) {
-					  let that = this
-					  this.$api.cancelOrder({
-						orderId:item.orderId
-					  }).then(res=>{
-						that.downCallback()
-						that.$api.getUserInfo().then( res=> {
-						  uni.setStorageSync('userInfo', res.data.data);
-						});
-					  })
-					} else if (res.cancel) {
-					  console.log('用户点击取消');
-					}
-				  }.bind(this)
+					content: '请确认是否取消订单!',
+					success: function (res) {
+						if (res.confirm) {
+							let that = this
+							this.$api.cancelOrder({
+								orderId:item.orderId
+							}).then(res=>{
+								that.downCallback()
+								that.$api.getUserInfo().then( res=> {
+									uni.setStorageSync('userInfo', res.data.data);
+								});
+							})
+						} else if (res.cancel) {
+							console.log('用户点击取消');
+						}
+					}.bind(this)
 				})
+
 			},
 
 			orderDetail(item) {