You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
330 lines
12 KiB
330 lines
12 KiB
<template>
|
|
<view
|
|
style="display: flex;flex-direction: column;height: 100vh;background: -webkit-linear-gradient(left,#FEA65F,#FB9440);"
|
|
class="app">
|
|
<!-- 有列表的时候用 :auto='false' 需要你在onload等调用reload方法 -->
|
|
<z-paging ref="paging" v-model="data" @query="queryList" :pagingStyle='styleObject' :auto='true'>
|
|
|
|
<view v-for="(item,index) in data" style=" display: flex;flex-direction: column;margin-left: 10px;margin-right: 10px;background: #FBE9CB;margin-top: 10px;
|
|
padding: 12px 0px;
|
|
border-radius: 15px;">
|
|
|
|
<view class="item">
|
|
<!-- <view class="left-circle"></view>
|
|
<view class="right-circle"></view>
|
|
<view class="item-line"></view> -->
|
|
|
|
<view class="item-top" style="margin-left: 16px;margin-right: 16px;">
|
|
|
|
<text class="item-top-code">预约单号:{{item.newCode}}</text>
|
|
<text class="item-top-state">{{item.stateValue}}</text>
|
|
</view>
|
|
|
|
<view
|
|
style="display: flex;flex-direction: row;align-items: center;margin-left: 16px;margin-right: 16px;margin-top: 15px;">
|
|
<text
|
|
style="font-size: 16px;margin-right: 8px;flex: 1;margin-right: 15px;">{{item.storeName}}</text>
|
|
|
|
<!-- <view style="display: flex;flex-direction: row;align-items: center;"
|
|
@click="makePhoneCall(item.linkPhone)">
|
|
<image src="../../static/phone-2.png" style="width: 20px;height: 20px;margin-right: 5px;">
|
|
</image>
|
|
<text>咨询电话</text>
|
|
</view> -->
|
|
|
|
</view>
|
|
|
|
|
|
<view
|
|
style="display: flex;flex-direction: row;align-items: center;margin-left: 16px;margin-right: 16px;margin-top: 6px;">
|
|
<image src="../../static/dingwei.png" style="width: 20px;height: 20px;margin-right: 5px;"
|
|
mode="aspectFit">
|
|
</image>
|
|
<text style="font-size: 12px;color: #666;">{{item.address}}</text>
|
|
</view>
|
|
|
|
<view class="item-bom" style="margin-left: 16px;margin-right: 16px;margin-top: 10px;">
|
|
|
|
<view class="item-bom-left">
|
|
|
|
<view style="display: flex;flex-direction: row;align-items: center;">
|
|
<text style="font-size: 12px;color: #666; margin-right: 5px;">提货日期:</text>
|
|
<text style="font-size: 12px;color: #FD6D2B;">{{item.reserveDate}}</text>
|
|
</view>
|
|
|
|
<view style="display: flex;flex-direction: row;align-items: center;margin-top: 16px;">
|
|
<text style="font-size: 12px;color: #666; margin-right: 5px;">提货人:</text>
|
|
<text style="font-size: 12px;color: #333; margin-right: 5px;">{{item.userName}}</text>
|
|
<text style="font-size: 12px;color: #333; ">{{item.userPhone}}</text>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="item-bom_right">
|
|
|
|
<image src="https://ordermall.yxtsoft.com/lpkui/image/daiticai.png"
|
|
style="width: 80px; height: 80px;z-index: 100;border-radius: 20px;">
|
|
</image>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view style="display: flex;flex-direction: row;align-items: center;width: 100%;margin-top: 15px;">
|
|
|
|
<view
|
|
style="display: flex;flex-direction: column;justify-content: center;align-items: center;flex: 1;"
|
|
@click="cancelReservation(item)">
|
|
<image src="../../static/close3.png" style="width: 32px;height: 32px;"></image>
|
|
<text style="font-size: 12px;color: #666;margin-top: 5px;">取消预约</text>
|
|
</view>
|
|
|
|
<view style="background: #E0DBD0; height: 30px;width: 1px;"></view>
|
|
|
|
<view
|
|
style="display: flex;flex-direction: column;justify-content: center;align-items: center;flex: 1;"
|
|
@click="makePhoneCall(item.linkPhone)">
|
|
<image src="../../static/phone-3.png" style="width: 32px;height: 32px;"></image>
|
|
<text style="font-size: 12px;color: #666;margin-top: 5px;">电话咨询</text>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
<view style="
|
|
height: 30px;margin-top: 5px;">
|
|
<image src="https://ordermall.yxtsoft.com/lpkui/image/reservationRecords_icon1.png"
|
|
style="width: 100%;height: 100%;" mode="scaleToFill"></image>
|
|
|
|
</view>
|
|
|
|
|
|
<view class="item_list" v-if="item.showLsit" style="margin-left: 16px;margin-right: 16px;">
|
|
|
|
<view v-for="(child,index) in item.goodsVo"
|
|
style="display: flex;flex-direction: row;width: 100%;">
|
|
|
|
<view style="display: flex;flex-direction: row;align-items: center;justify-content: space-between;width: 100%;
|
|
padding-left: 10px;padding-right: 10px;margin-bottom: 8px;">
|
|
<text style="font-size: 12px;color: #666;">{{child.goodName}}</text>
|
|
<text style="font-size: 12px;color: #666;">{{child.num}}{{child.unitName}}</text>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="item_btn" v-if="!item.showLsit" @click="showList(item)">
|
|
<text style="font-size: 12px;color: #999; margin-right: 5px;">展开</text>
|
|
<image src="../../static/zhankai.png" style="width: 15px;height: 15px;"></image>
|
|
</view>
|
|
|
|
<view class="item_btn" v-if="item.showLsit" @click="showList(item)">
|
|
<text style="font-size: 12px;color: #999; margin-right: 5px;">收起</text>
|
|
<image src="../../static/shouqi.png" style="width: 15px;height: 15px;"></image>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</z-paging>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
styleObject: {
|
|
'padding-top': '10px',
|
|
'padding-bottom': '10px',
|
|
'border-radius': '15px',
|
|
'background': '#F9F9F9'
|
|
},
|
|
data: []
|
|
}
|
|
},
|
|
|
|
onLoad() {
|
|
// this.$refs.paging.complete(_this.data)
|
|
// this.$refs.paging.complete(true)
|
|
},
|
|
|
|
methods: {
|
|
cancelReservation(item) {
|
|
var _this = this
|
|
console.log("item", item);
|
|
if (item.cancel) {
|
|
// 可取消
|
|
uni.showModal({
|
|
title: '',
|
|
content: '确认要取消预约吗?',
|
|
cancelText: "取消",
|
|
confirmText: "确定",
|
|
confirmColor: "#FF9900",
|
|
success(res) {
|
|
if (res.confirm) {
|
|
// console.log('用户点击确定')
|
|
|
|
_this.$api.cancelReservation(item.reserveCode).then((resp) => {
|
|
|
|
const index = _this.data.findIndex((info) => info.sid === item.sid)
|
|
console.log("index》》》》", index)
|
|
_this.data.splice(index, 1)
|
|
|
|
}).catch(e => {
|
|
|
|
})
|
|
|
|
} else if (res.cancel) {
|
|
// console.log('用户点击取消')
|
|
}
|
|
}
|
|
})
|
|
|
|
} else {
|
|
// 超出时限 不可取消
|
|
this.shortToast('已超出可取消预约提货时间。')
|
|
return
|
|
}
|
|
|
|
},
|
|
|
|
makePhoneCall(phone) {
|
|
if (this.stringIsNotEmpty(phone))
|
|
wx.makePhoneCall({
|
|
|
|
phoneNumber: phone,
|
|
|
|
})
|
|
},
|
|
showList(item) {
|
|
item.showLsit = !item.showLsit
|
|
},
|
|
// 分页的请求
|
|
queryList(pageNo, pageSize) {
|
|
let _this = this
|
|
_this.$api.myOrderListByUserSid({
|
|
"current": pageNo,
|
|
"size": pageSize,
|
|
"params": {
|
|
"customerSid": getApp().globalData.sid,
|
|
"state": '0', //0 未提货 1 已提货
|
|
|
|
}
|
|
}).then((resp) => {
|
|
// 添加数据源
|
|
this.$refs.paging.complete(resp.records)
|
|
}).catch(e => {
|
|
// 出错了,点击重试
|
|
_this.$refs.paging.complete(false);
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.app {
|
|
--bgcolor: #f2f2f2;
|
|
|
|
}
|
|
|
|
.item {
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
box-sizing: border-box;
|
|
flex-direction: column;
|
|
// /*最重要的部分如下:*/
|
|
// background-image: radial-gradient(circle at left 50%, #f2f2f2, #f2f2f2 12px, transparent 12px),
|
|
// radial-gradient(circle at right 50%, #f2f2f2, #f2f2f2 12px, transparent 12px);
|
|
|
|
.item-line {
|
|
width: 96%;
|
|
display: flex;
|
|
flex-direction: row;
|
|
box-sizing: border-box;
|
|
margin-left: 7px;
|
|
margin-right: 7px;
|
|
border-bottom: 2rpx dashed #f0f;
|
|
position: absolute;
|
|
height: 20rpx;
|
|
top: 150px;
|
|
}
|
|
|
|
.left-circle {
|
|
background-color: var(--bgcolor);
|
|
position: absolute;
|
|
width: 50rpx;
|
|
height: 50rpx;
|
|
border-radius: 50%;
|
|
top: 150px;
|
|
left: -50px;
|
|
}
|
|
|
|
|
|
.right-circle {
|
|
background-color: var(--bgcolor);
|
|
position: absolute;
|
|
width: 50rpx;
|
|
height: 50rpx;
|
|
border-radius: 50%;
|
|
top: 150px;
|
|
right: -50px;
|
|
}
|
|
|
|
.item-top {
|
|
position: relative; //添加的定位
|
|
z-index: 100;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
.item-top-code {
|
|
font-size: 14px;
|
|
color: #333;
|
|
}
|
|
|
|
.item-top-state {
|
|
font-size: 14px;
|
|
color: #FF9900;
|
|
}
|
|
}
|
|
|
|
.item-bom {
|
|
position: relative; //添加的定位
|
|
z-index: 100;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
.item-bom-left {
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.item-bom_right {
|
|
|
|
border-radius: 20px;
|
|
}
|
|
}
|
|
|
|
.item_list {
|
|
position: relative; //添加的定位
|
|
z-index: 100;
|
|
margin-top: 5px;
|
|
}
|
|
|
|
.item_btn {
|
|
z-index: 100;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
}
|
|
</style>
|