Browse Source

订单详情/退款详情添加多表单展示

master
Enzo 4 years ago
parent
commit
3eebe393ca
  1. 55
      pages/goodsDetail/index.vue
  2. 2
      pages/order/confirm_order.vue
  3. 49
      pages/order/order_details.vue
  4. 39
      pages/order/refund_detail.vue

55
pages/goodsDetail/index.vue

@ -206,7 +206,7 @@
¥{{ total_hotel_orginalprice*buy_num || goods_detail.spec[type_index].original_price*buy_num }}</view>
</view>
<view class="lf-font-24 lf-m-t-20 lf-color-555">
酒店住房日期{{live_date}}~{{leave_date}}
酒店住房日期{{live_date}}~{{leave_date}} <text class="lf-m-l-20" v-if="totalLive">{{totalLive}}</text>
</view>
<view style="margin-top: 60rpx;">
<text class="lf-font-32 lf-font-bold" style="color: #131315;">套餐类型</text>
@ -544,28 +544,37 @@
}
},
changeRange(e) {
this.total_hotel_price = 0;
this.total_hotel_orginalprice = 0;
this.live_date = e.startDate;
this.leave_date = e.endDate;
let differrentList = this.goods_detail.spec[this.type_index].list;
differrentList.forEach((item, index) => {
if (item.date == this.live_date) {
this.live_index = index;
} else if (item.date == this.leave_date) {
this.leave_index = index;
}
})
let total_date = differrentList.slice(this.live_index, this.leave_index);
this.hotel_specid = [];
total_date.reduce((list, item) => {
this.total_hotel_price += parseFloat(item.price);
this.total_hotel_orginalprice += parseFloat(item.original_price);
this.hotel_specid.push(item.id);
console.log('当前价格',this.total_hotel_price);
console.log('当前11',item.price);
}, []);
if(e.startDate == e.endDate) {
this.$msg('不能选择同一天!');
return
}else {
this.total_hotel_price = 0;
this.total_hotel_orginalprice = 0;
this.live_date = e.startDate;
this.leave_date = e.endDate;
let live_date = new Date(new Date(this.live_date).toLocaleDateString()).getTime();
let leave_date = new Date(new Date(this.leave_date).toLocaleDateString()).getTime();
this.totalLive = parseInt(Math.abs(leave_date - live_date) / 1000 / 60 / 60 / 24);
let differrentList = this.goods_detail.spec[this.type_index].list;
differrentList.forEach((item, index) => {
if (item.date == this.live_date) {
this.live_index = index;
} else if (item.date == this.leave_date) {
this.leave_index = index;
}
})
let total_date = differrentList.slice(this.live_index, this.leave_index);
this.hotel_specid = [];
total_date.reduce((list, item) => {
this.total_hotel_price += parseFloat(item.price);
this.total_hotel_orginalprice += parseFloat(item.original_price);
this.hotel_specid.push(item.id);
console.log('当前价格',this.total_hotel_price);
console.log('当前11',item.price);
}, []);
}
},
change(e) {
console.log(e);

2
pages/order/confirm_order.vue

@ -113,7 +113,7 @@
</view>
<view class="cu-bar padding-lr">
<text class="lf-color-555 lf-font-28">酒店住房日期</text>
<text class="lf-font-28" style="color: #131315;">{{check_in_time}}~{{check_out_time}}</text>
<text class="lf-font-28" style="color: #131315;">{{check_in_time}}~{{check_out_time}} <text style="color: #131315;" class="lf-font-28 lf-m-l-20">{{totalLive}}</text></text>
</view>
<view class="cu-bar padding-lr">
<text class="lf-color-555 lf-font-28">到店时间</text>

49
pages/order/order_details.vue

@ -27,18 +27,18 @@
<self-line />
<!-- 表单 -->
<view class="bg-white">
<view class="cu-bar padding-lr solid-bottom flex justify-between align-center text-center">
<view class="cu-bar padding-lr flex justify-between align-center text-center">
<text class="lf-color-555 lf-font-28">订单编号</text>
<view>
<text class="margin-right lf-font-28 text-black1">{{orderDetails.order_no}}</text>
<text class="text-orange lf-font-28" @click="copy(orderDetails.order_no)">复制</text>
</view>
</view>
<view class="cu-bar padding-lr solid-bottom" v-if="orderDetails.created_at">
<view class="cu-bar padding-lr" v-if="orderDetails.created_at">
<text class="lf-color-555 lf-font-28">下单时间</text>
<text class="lf-font-28 text-black1">{{ orderDetails.created_at }}</text>
</view>
<view class="cu-bar padding-lr solid-bottom" v-if="orderDetails.paid_at">
<view class="cu-bar padding-lr" v-if="orderDetails.paid_at">
<text class="lf-color-555 lf-font-28">付款时间</text>
<text class="lf-font-28 text-black1" v-if="orderDetails.paid_at == 0">暂未付款</text>
<text class="lf-font-28 text-black1" v-else>{{ orderDetails.paid_at }}</text>
@ -47,23 +47,22 @@
<text class="lf-color-555 lf-font-28">支付方式</text>
<text class="lf-font-28 text-black1">{{orderDetails.pay_type_text}}</text>
</view>
<view class="cu-bar padding-lr" v-for="(item,index) of orderDetails.info" :key="index">
<view class="cu-bar padding-lr" :class="item.type=='image' || item.type == 'textarea'?'flex-img':''" v-for="(item,index) of orderDetails.info" :key="index">
<text class="lf-color-555 lf-font-28">{{index}}</text>
<text class="lf-font-28 text-black1">{{item}}</text>
<view v-if="">
<view class="grid col-3 grid-square flex-sub lf-m-t-30" v-if="item.type == 'image'">
<view style="width: 212rpx;height: 212rpx;border-radius: 10rpx;" class="bg-img" v-for="(item,index) in img_list" :key="index" @tap="showImg(index)" :data-url="img_list[index]">
<image :src="img_list[index]" mode="aspectFill"></image>
<view class="cu-tag bg-red" @tap.stop="DelImg(index)" :data-index="index">
<!-- <text class='cuIcon-close'></text> -->
<text class="lf-iconfont lf-icon-cuowu lf-font-40 lf-color-price"></text>
</view>
</view>
<view style="width: 212rpx;height: 212rpx;border-radius: 10rpx;" class="solids" @tap="ChooseImage(item.field)" v-if="img_list.length<3">
<text class='cuIcon-cameraadd'></text>
<text class="lf-font-28 text-black1" v-if="!item.type">{{item}}</text>
<text class="lf-font-28 text-black1" v-if="item.type=='text'">{{item.value}}</text>
<text class="lf-font-28 text-black1" v-if="item.type=='radio'">{{item.value}}</text>
<text class="lf-font-28 text-black1" v-if="item.type=='checkbox'">{{item.value}}</text>
<view v-if="item.type == 'image'">
<view class="grid col-3 grid-square flex-sub lf-m-t-30">
<view style="width: 212rpx;height: 212rpx;border-radius: 10rpx;" class="bg-img" v-for="(item2,index2) in item.value" :key="index2" @tap="showImg(item.value,index2)" :data-url="item.value[index2]">
<image :src="item.value[index2]" mode="aspectFill"></image>
</view>
</view>
</view>
<view class="cu-self menu lf-w-100" style="margin-top: 30rpx; position: relative;" v-if="item.type == 'textarea'">
<textarea :cursor-spacing="120" disabled maxlength="300" :adjust-position="true" type="text" style="background-color: #F8F8F8;border-radius: 20rpx;" class="text-left lf-font-28 area-self lf-w-100 lf-p-20" :placeholder="item.value" />
</view>
</view>
</view>
<view>
@ -163,6 +162,17 @@
}
},
methods: {
//
showImg(url,index) {
this.$u.throttle(() => {
let goods_banner = url || [];
let banners = goods_banner.map(item => item);
uni.previewImage({
urls: banners,
current: index
})
}, 200);
},
refreshCode() {
this.getOrderDetails()
this.$msg('刷新成功')
@ -225,6 +235,13 @@
</script>
<style lang="scss" scoped>
.flex-img {
display: flex!important;
align-items: flex-start!important;
flex-direction: column!important;
padding: 30rpx;
justify-content: space-between!important;
}
.loading-more-text::before {
height: 60rpx;
width: 60rpx;

39
pages/order/refund_detail.vue

@ -23,10 +23,27 @@
</view>
<self-line/>
<view class="bg-white padding-lr">
<view class="cu-bar lf-border-bottom">
<view class="cu-bar">
<text class="lf-color-555 lf-font-28">可退金额</text>
<text class="text-price lf-font-36 lf-color-price">{{orderDetails.price}}</text>
</view>
<view class="cu-bar" :class="item.type=='image' || item.type == 'textarea'?'flex-img':''" v-for="(item,index) of orderDetails.info" :key="index">
<text class="lf-color-555 lf-font-28">{{index}}</text>
<text class="lf-font-28 text-black1" v-if="!item.type">{{item}}</text>
<text class="lf-font-28 text-black1" v-if="item.type=='text'">{{item.value}}</text>
<text class="lf-font-28 text-black1" v-if="item.type=='radio'">{{item.value}}</text>
<text class="lf-font-28 text-black1" v-if="item.type=='checkbox'">{{item.value}}</text>
<view v-if="item.type == 'image'" class="lf-m-t-20 lf-m-b-20">
<view class="grid col-3 grid-square flex-sub lf-m-t-30">
<view style="width: 212rpx;height: 212rpx;border-radius: 10rpx;" class="bg-img" v-for="(item2,index2) in item.value" :key="index2" @tap="showImg1(item.value,index2)" :data-url="item.value[index2]">
<image :src="item.value[index2]" mode="aspectFill"></image>
</view>
</view>
</view>
<view class="cu-self menu lf-w-100" style="margin-top: 30rpx; position: relative;" v-if="item.type == 'textarea'">
<textarea :cursor-spacing="120" disabled maxlength="300" :adjust-position="true" type="text" style="background-color: #F8F8F8;border-radius: 20rpx;" class="text-left lf-font-28 area-self lf-w-100 lf-p-20" :placeholder="item.value" />
</view>
</view>
<view class="cu-bar flex justify-between align-center text-center">
<text class="lf-color-555 lf-font-28">订单编号</text>
<view>
@ -87,6 +104,17 @@
}
},
methods: {
//
showImg1(url,index) {
this.$u.throttle(() => {
let goods_banner = url || [];
let banners = goods_banner.map(item => item);
uni.previewImage({
urls: banners,
current: index
})
}, 200);
},
getOrderDetails() {
this.$http(this.API.API_ORDER_DETAILS, {
id: this.order_id
@ -128,7 +156,14 @@
}
</script>
<style>
<style scoped lang="scss">
.flex-img {
display: flex!important;
align-items: flex-start!important;
flex-direction: column!important;
margin: 30rpx 0;
justify-content: space-between!important;
}
.btn{
margin: 0;
padding: 0;

Loading…
Cancel
Save