Browse Source

upload

dev_czc
HolyKnightIX 2 years ago
parent
commit
51963550b2
7 changed files with 268 additions and 29 deletions
  1. +4
    -0
      config/config.js
  2. +20
    -5
      pages/Appointment/appointment.js
  3. +8
    -6
      pages/Appointment/appointment.ttml
  4. +4
    -3
      pages/Appointment/appointment.ttss
  5. +145
    -4
      pages/appointDetail/appointDetail.js
  6. +41
    -7
      pages/appointDetail/appointDetail.ttml
  7. +46
    -4
      pages/appointDetail/appointDetail.ttss

+ 4
- 0
config/config.js View File

@@ -137,6 +137,10 @@ let config = {
* 预约确认
*/
appointConfirm: "/api/wxCouponOrderReservation/updateStatus",
/**
* 预约确认
*/
appointSetDate: "/api/wxCouponOrderReservation/update",
/**
* 获得openId
*/


+ 20
- 5
pages/Appointment/appointment.js View File

@@ -23,7 +23,7 @@ Page({
const that = this
const data = {
pageNum: this.data.pageNum,
pageSize: 20,
pageSize: 200,
}

if (startTime && endTime) {
@@ -31,7 +31,7 @@ Page({
data.serchEndDate = endTime
}

if (status) {
if (status || status === 0) {
data.status = status
}

@@ -44,7 +44,12 @@ Page({
res.data.list.forEach(item => {
const appointStart = util.timestampToTime(item.startDate, 'YYYY-MM-DD hh:mm:ss')
const appointEnd = util.timestampToTime(item.endDate, 'hh:mm:ss')
item.appointTime = appointStart + ' - ' + appointEnd
if (item.startDate && item.endDate) {
item.appointTime = appointStart + ' - ' + appointEnd
} else {
item.appointTime = "暂无";
}

})
that.setData({
list: res.data.list,
@@ -64,11 +69,21 @@ Page({
},

setType(e) {
const type = e.currentTarget.dataset.type * 1
const type = e.currentTarget.dataset.type

this.setData({
currentID: '',
})
this.getList(type)

if (type === 'X') {
this.getList(false)
} else if (type === 'Y') {
this.getList(0)
} else {
this.getList(type * 1)
}


},

setStartTime(e) {


+ 8
- 6
pages/Appointment/appointment.ttml View File

@@ -12,8 +12,9 @@
</view>

<view class="{{ currentID == 1 ? 'type active' : 'type' }}">
<view class="item" bindtap="setType" data-type="">全部</view>
<view class="item" bindtap="setType" data-type="0">未确认</view>
<view class="item" bindtap="setType" data-type="X">全部</view>
<view class="item" bindtap="setType" data-type="Y">待确认</view>
<view class="item" bindtap="setType" data-type="-1">未预约</view>
<view class="item" bindtap="setType" data-type="5">已确认</view>
<view class="item" bindtap="setType" data-type="8">已完成</view>
</view>
@@ -27,19 +28,20 @@
<view class="{{ currentID != 1 ? 'list active' : 'list' }}">
<view tt:if="{{ list.length > 0 }}" class="item" tt:for="{{ list }}">
<view class="head">
<view>订单编号:{{ item.couponOrderId }}</view>
<view tt:if="{{ item.status == 0 }}" class="notice noAppoint">确认</view>
<view>券码:{{ item.couponOrderId }}</view>
<view tt:if="{{ item.status == 0 }}" class="notice noAppoint">确认</view>
<view tt:if="{{ item.status == 1 }}" class="notice noAppoint">已取消</view>
<view tt:if="{{ item.status == 3 }}" class="notice refund">已退款</view>
<view tt:if="{{ item.status == 5 }}" class="notice confirm">已确认</view>
<view tt:if="{{ item.status == '-1' }}" class="notice confirm">未预约</view>
<view tt:if="{{ item.status == 8 }}" class="notice complete">已完成</view>
<view tt:if="{{ item.status == 9 }}" class="notice complete">已评价</view>
</view>
<view class="body">
<view class="items">商品名称:{{ item.couponTitle }}</view>
<view class="items">用户手机号码:{{ item.userPhone }}</view>
<view class="items">服务预约时间:</view>
<view class="items">{{ item.appointTime }}</view>
<view class="items">服务预约时间:<text tt:if="{{ item.appointTime == '暂无' }}">暂无</text></view>
<view tt:if="{{ item.appointTime != '暂无' }}" class="items">{{ item.appointTime }}</view>
</view>
<view class="footer">
<button type="primary" bindtap="goDetail" data-id="{{ item.id }}">详情</button>


+ 4
- 3
pages/Appointment/appointment.ttss View File

@@ -54,13 +54,14 @@

.pickedTime {
position: relative;
bottom: 480rpx;
bottom: 590rpx;
text-align: center;
}

.pickedTime .picker {
display: inline-block;
background-color: #529ffd86;
font-size: 30rpx;
padding: 10rpx;
border-radius: 10rpx;
color: #ffffff;
@@ -70,14 +71,14 @@
display: inline-block;
width: 120rpx;
height: 60rpx;
line-height: 60rpx;
line-height: 50rpx;
padding: 5rpx;
margin-left: 40rpx;
}

.list {
position: relative;
bottom: 480rpx;
bottom: 590rpx;
margin-top: 20rpx;
z-index: -1;
}


+ 145
- 4
pages/appointDetail/appointDetail.js View File

@@ -8,7 +8,15 @@ var app = getApp()
Page({
data: {
id: "",
detail: null
detail: null,
isShowBtns: true,
isSetTime: false,
isSetAddress: false,
pickedDate: "请选择日期",
pickedStartTime: "请选择",
pickedEndTime: "请选择",
startTime: "",
endTime: ""
},

onLoad(options) {
@@ -34,9 +42,17 @@ Page({
console.log(res, 'res');
const appointStart = util.timestampToTime(res.data.startDate, 'YYYY-MM-DD hh:mm:ss')
const appointEnd = util.timestampToTime(res.data.endDate, 'hh:mm:ss')
res.data.appointTime = appointStart + ' - ' + appointEnd

if (res.data.startDate && res.data.endDate) {
res.data.appointTime = appointStart + ' - ' + appointEnd
} else {
res.data.appointTime = "暂无";
}
that.setData({
detail: res.data
detail: res.data,
pickedDate: util.timestampToTime(res.data.startDate, 'YYYY-MM-DD') || '请选择日期',
pickedStartTime: util.timestampToTime(res.data.startDate, 'hh:mm') || '请选择',
pickedEndTime: util.timestampToTime(res.data.endDate, 'hh:mm') || '请选择',
})
}).catch(err => {
console.log(err, 'err');
@@ -47,11 +63,32 @@ Page({
tt.navigateBack();
},

chooseDate(e) {
console.log(e.detail.value, 'e');
this.setData({
pickedDate: e.detail.value
})
},

chooseStartTime(e) {
console.log(e.detail.value, 'e');
this.setData({
pickedStartTime: e.detail.value
})
},

chooseEndTime(e) {
console.log(e.detail.value, 'e');
this.setData({
pickedEndTime: e.detail.value
})
},

cancel() {
const that = this
tt.showModal({
title: "提示",
content: "是否与用户取得联系并取消预约?",
content: "是否与用户取得联系并取消确认?",
showCancel: true,
confirmText: "确认取消",
confirmColor: "#52a0fd",
@@ -87,6 +124,87 @@ Page({
});
},

setDate() {
const isSetTime = !this.data.isSetTime
this.setData({
isSetTime,
isSetAddress: false
})
},

confirmDate() {
const isSetTime = !this.data.isSetTime
this.setData({
isSetTime,
isSetAddress: false
})
if (!isSetTime) {
const tempData = this.data

if (tempData.pickedDate == '请选择日期') {
tt.showToast({
title: '请请选择日期!',
icon: 'fail'
});
return
}

if (tempData.pickedStartTime == '请选择') {
tt.showToast({
title: '请起始时间!',
icon: 'fail'
});
return
}

if (tempData.pickedEndTime == '请选择') {
tt.showToast({
title: '请结束时间!',
icon: 'fail'
});
return
}
const data = {
id: this.data.detail.id,
couponOrderId: this.data.detail.couponOrderId,
startDate: tempData.pickedDate + " " + tempData.pickedStartTime + ":00",
endDate: tempData.pickedDate + " " + tempData.pickedEndTime + ":00"
}
this.goSetDate(data)
console.log(data, 'data');
}
},

setAddress() {
const isSetAddress = !this.data.isSetAddress
this.setData({
isSetAddress,
isSetTime: false
})
},

settingAddress(e) {
const detail = this.data.detail
detail.detailedAddress = e.detail.value
this.setData({
detail
})
},

confirmAddress() {
const isSetAddress = !this.data.isSetAddress
this.setData({
isSetAddress,
isSetTime: false
})
const data = {
id: this.data.detail.id,
couponOrderId: this.data.detail.couponOrderId,
detailedAddress: this.data.detail.detailedAddress,
}
this.goSetDate(data)
},

goChange(id, status) {
const data = {
id,
@@ -113,5 +231,28 @@ Page({
icon: "none"
});
})
},

goSetDate(data) {
const that = this
HttpBasics.post({
url: config.api.appointSetDate,
data
})
.then(res => {
console.log(res, 'res');
tt.showToast({
title: '修改成功!',
icon: "success",
duration: 2000
});
that.getDetail(that.data.id)
}).catch(err => {
console.log(err, 'err');
tt.showToast({
title: err.message,
icon: "none"
});
})
}
})

+ 41
- 7
pages/appointDetail/appointDetail.ttml View File

@@ -1,20 +1,54 @@
<!-- c:\Users\Holy-Knight-IX\Desktop\Working Space\4.TikTok-MiniPro\ttb\pages\appointDetail\appointDetail.ttml -->
<view>
<view class="card">
<view class="item">订单编号:{{ detail.couponOrderId }}</view>
<view class="item">券码:{{ detail.couponOrderId }}</view>
<view class="item">商品名称:{{ detail.couponTitle }}</view>
<view class="item">服务预约时间:{{ detail.appointTime }}</view>
<view class="item">服务预约时间:{{ detail.appointTime }}<span
tt:if="{{ detail.status == 0 || detail.status == 5 || detail.status == '-1' }}" class="edit"
bindtap="setDate">修改</span></view>
<view class="item">服务预约地址:<text class="lineHeight">{{ detail.userAddress }}</text></view>
<view class="item">服务详细地址:<text class="lineHeight">{{ detail.detailedAddress }}</text></view>
<view class="item">服务详细地址:<text class="lineHeight">{{ detail.detailedAddress }}</text><span
tt:if="{{ detail.status == 0 || detail.status == 5 || detail.status == '-1' }}" class="edit"
bindtap="setAddress">修改</span></view>
<view class="item">用户手机号码:{{ detail.userPhone }}</view>
<view class="item">备注:{{ detail.describeStr }}</view>
</view>
<view class="btns">
<button class="back" bindtap="back">返回</button>

<view tt:if="{{ isSetTime }}">
<view class="datePickerFlex">
<picker mode="date" start="{{ startTime }}" end="{{ endTime }}" disabled="{{ !isShowBtns }}"
bindchange='chooseDate'>选择服务日期:</picker>
<picker mode="date" start="{{ startTime }}" end="{{ endTime }}" disabled="{{ !isShowBtns }}"
bindchange='chooseDate' class="address">
{{ pickedDate }}</picker>
</view>

<view class="datePickerFlex">
<picker mode="time" disabled="{{ !isShowBtns }}" bindchange='chooseTime'>预计上门时间:</picker>
<picker mode="time" disabled="{{ !isShowBtns }}" bindchange='chooseStartTime' class="address">{{
pickedStartTime
}}</picker>
-
<picker mode="time" start="{{ pickedStartTime }}" disabled="{{ !isShowBtns }}" bindchange='chooseEndTime'
class="address">{{ pickedEndTime }}
</picker>
</view>
</view>

<view tt:if="{{ isSetAddress }}">
<textarea class="detailedAddress" placeholder="请输入服务详细地址" bindinput="settingAddress"
value="{{ detail.detailedAddress }}"></textarea>
</view>

<view class="{{ (isSetTime || isSetAddress) ? 'btns' : 'btns active' }}">
<block tt:if="{{ detail.status != 8 }}">
<button tt:if="{{ isSetTime }}" class="confirm" bindtap="confirmDate">确定预约时间</button>

<button tt:if="{{ isSetAddress }}" class="confirm" bindtap="confirmAddress">确定详细地址</button>

<button tt:if="{{ detail.status == 0 }}" class="confirm" bindtap="confirm">确认预约</button>
<!-- <button tt:if="{{ detail.status == 0 }}" class="confirm" bindtap="confirm">修改预约时间</button> -->
<button tt:if="{{ detail.status == 5 }}" class="confirm" bindtap="cancel">取消预约</button>
<button tt:if="{{ detail.status == 5 }}" class="confirm" bindtap="cancel">取消确认</button>
</block>
</view>
</view>

+ 46
- 4
pages/appointDetail/appointDetail.ttss View File

@@ -17,13 +17,17 @@
}

.btns {
position: fixed;
width: 95%;
left: 50%;
bottom: 130rpx;
transform: translateX(-50%);
padding: 0 80rpx;
box-sizing: border-box;
margin: auto;
}

.btns.active {
position: absolute;
left: 50%;
bottom: 110rpx;
transform: translateX(-50%);
}

.btns .back {
@@ -33,4 +37,42 @@
.btns .confirm {
color: #ffffff;
background-color: #52a0fd;
margin-top: 40rpx;
}

.datePickerFlex {
display: flex;
justify-content: space-between;
width: 85%;
background-color: #f4f5f6;
border-radius: 20rpx;
padding: 30rpx;
margin: 35rpx auto;
}

.address {
color: #8a8a8a;
}

.edit {
display: inline-block;
width: 70rpx;
height: 40rpx;
line-height: 40rpx;
font-size: 30rpx;
color: #ffffff;
text-align: center;
background-color: #c85963;
border-radius: 10rpx;
padding: 2rpx 5rpx;
margin-left: 20rpx;
}

.detailedAddress {
width: 95%;
padding: 20rpx;
border-radius: 15rpx;
box-sizing: border-box;
border: 1px solid #00000063;
margin: 0 auto;
}

Loading…
Cancel
Save