336 lines
6.4 KiB
Vue
336 lines
6.4 KiB
Vue
<template>
|
||
<view class="user-index">
|
||
<!--提货地址-->
|
||
<view class="thbox">
|
||
<view class="spbox">
|
||
<view class="spbt">
|
||
<text class="sptit">订单号:</text>
|
||
<text class="sptit2">{{detail.order_no}}</text>
|
||
</view>
|
||
<view class="spcon">
|
||
<image class="sptu" :src="product.image[0].file_path"></image>
|
||
<view class="sptxt">
|
||
<text class="h1"> {{product.product_name}}</text>
|
||
<text class="guige">{{detail.card.product_attr}}</text>
|
||
<view class="num">
|
||
<text class="price">¥{{product.product_price}}</text>
|
||
<text class="numshu">X1</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
</view>
|
||
<view class="addbox">
|
||
<text class="addbt">提货地址</text>
|
||
<view class="row">
|
||
<text class="rowtxt">收货人</text>
|
||
<input class="rowsr" v-model="form.name" placeholder="请输入收货人姓名" />
|
||
</view>
|
||
<view class="row">
|
||
<text class="rowtxt">手机号码</text>
|
||
<input class="rowsr" v-model="form.mobile" placeholder="请输入手机号码" />
|
||
</view>
|
||
<view class="row">
|
||
<text class="rowtxt">所在地区</text>
|
||
<input class="rowsr" placeholder="" placeholder-class="grary9" v-model="selectCity" disabled="true"
|
||
@click="showMulLinkageThreePicker" />
|
||
</view>
|
||
<view class="row">
|
||
<text class="rowtxt">详细地址</text>
|
||
<textarea class="rowdz" v-model="form.detail" placeholder="请输入详细地址" />
|
||
</view>
|
||
</view>
|
||
<button class="qubtn" @click="submit">确认兑换</button>
|
||
|
||
</view>
|
||
<mpvue-city-picker v-if="is_load" ref="mpvueCityPicker" :province="province" :city="city" :area="area"
|
||
:pickerValueDefault="cityPickerValueDefault" @onConfirm="onConfirm"></mpvue-city-picker>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import mpvueCityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue';
|
||
export default {
|
||
components: {
|
||
mpvueCityPicker
|
||
},
|
||
data() {
|
||
return {
|
||
temlIds: [],
|
||
order_id: 0,
|
||
product: {},
|
||
cityPickerValueDefault: [0, 0, 0],
|
||
selectCity: '选择省,市,区',
|
||
detail: {},
|
||
address: {},
|
||
delta: 1,
|
||
province: [],
|
||
city: [],
|
||
area: [],
|
||
is_load: false,
|
||
form: {
|
||
name: '',
|
||
mobile: '',
|
||
province_id: 0,
|
||
city_id: 0,
|
||
region_id: 0,
|
||
detail: '',
|
||
}
|
||
};
|
||
},
|
||
onLoad(e) {
|
||
this.order_id = e.order_id;
|
||
this.getData();
|
||
this.getRegionData();
|
||
},
|
||
methods: {
|
||
/*获取数据*/
|
||
getData() {
|
||
let self = this;
|
||
self._get(
|
||
'card.code/order', {
|
||
order_id: self.order_id
|
||
},
|
||
function(res) {
|
||
self.detail = res.data.detail;
|
||
self.product = res.data.product;
|
||
self.temlIds = res.data.template_arr;
|
||
}
|
||
);
|
||
},
|
||
// 获取省市区
|
||
getRegionData() {
|
||
let self = this;
|
||
self._post('settings/getRegion', {}, function(res) {
|
||
self.province = res.data.regionData[0];
|
||
self.city = res.data.regionData[1];
|
||
self.area = res.data.regionData[2];
|
||
self.is_load = true;
|
||
|
||
});
|
||
},
|
||
/*三级联动选择*/
|
||
showMulLinkageThreePicker() {
|
||
this.$refs.mpvueCityPicker.show();
|
||
},
|
||
|
||
/*确定选择的省市区*/
|
||
onConfirm(e) {
|
||
this.selectCity = e.label;
|
||
this.form.province_id = e.cityCode[0];
|
||
this.form.city_id = e.cityCode[1];
|
||
this.form.region_id = e.cityCode[2];
|
||
},
|
||
submit() {
|
||
let self = this;
|
||
console.log(self.form);
|
||
if (self.form.name == '') {
|
||
uni.showToast({
|
||
title: '请输入收货人姓名',
|
||
duration: 1000,
|
||
icon: 'none'
|
||
});
|
||
return false;
|
||
}
|
||
|
||
if (self.form.mobile == '') {
|
||
uni.showToast({
|
||
title: '请输入手机号码',
|
||
duration: 1000,
|
||
icon: 'none'
|
||
});
|
||
return false;
|
||
}
|
||
|
||
if (self.form.province_id == 0 || self.form.city_id == 0 || self.form.region_id == 0) {
|
||
uni.showToast({
|
||
title: '请选择所在地区',
|
||
duration: 1000,
|
||
icon: 'none'
|
||
});
|
||
return false;
|
||
}
|
||
|
||
if (self.form.detail == '') {
|
||
uni.showToast({
|
||
title: '请输入街道小区楼牌号等',
|
||
duration: 1000,
|
||
icon: 'none'
|
||
});
|
||
return false;
|
||
}
|
||
self.form.order_id = self.order_id;
|
||
let callback = function() {
|
||
self._post('card.code/order', self.form, function(res) {
|
||
self.showSuccess(res.msg, function() {
|
||
self.gotoPage('/pages/order/codeorder');
|
||
});
|
||
});
|
||
};
|
||
self.subMessage(self.temlIds, callback);
|
||
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style>
|
||
.thbox {
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
background-color: #e4e4e4;
|
||
position: absolute;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
top: 0;
|
||
|
||
}
|
||
|
||
.spbox {
|
||
display: flex;
|
||
flex-direction: column;
|
||
width: 84%;
|
||
padding: 5%;
|
||
margin: 20rpx 0;
|
||
background: #fff;
|
||
}
|
||
|
||
.spbt {
|
||
display: flex;
|
||
flex-direction: row;
|
||
height: 64rpx;
|
||
line-height: 64rpx;
|
||
border-bottom: 1px solid #eee;
|
||
margin-bottom: 20rpx;
|
||
}
|
||
|
||
.sptit {
|
||
font-size: 26rpx;
|
||
color: #333;
|
||
|
||
}
|
||
|
||
.sptit2 {
|
||
font-size: 26rpx;
|
||
color: #999;
|
||
|
||
}
|
||
|
||
.spcon {
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.sptu {
|
||
width: 50%;
|
||
height: 192rpx;
|
||
border-radius: 10rpx;
|
||
|
||
}
|
||
|
||
.sptxt {
|
||
width: 80%;
|
||
display: flex;
|
||
flex-direction: column;
|
||
margin-left: 20rpx;
|
||
}
|
||
|
||
.h1 {
|
||
font-size: 32rpx;
|
||
line-height: 32rpx;
|
||
height: 32rpx;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.guige {
|
||
font-size: 24rpx;
|
||
color: #999;
|
||
margin: 20rpx 0;
|
||
}
|
||
|
||
.num {
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: space-between;
|
||
align-items: flex-end;
|
||
}
|
||
|
||
.price {
|
||
font-size: 36rpx;
|
||
font-weight: bold;
|
||
color: #000;
|
||
|
||
}
|
||
|
||
.numshu {
|
||
color: #999;
|
||
font-size: 28rpx;
|
||
|
||
}
|
||
|
||
.addbox {
|
||
display: flex;
|
||
flex-direction: column;
|
||
width: 84%;
|
||
padding: 5%;
|
||
background: #fff;
|
||
}
|
||
|
||
.addbt {
|
||
font-size: 36rpx;
|
||
color: #333;
|
||
border-bottom: 1px solid #eee;
|
||
padding-bottom: 20rpx;
|
||
}
|
||
|
||
.row {
|
||
display: flex;
|
||
border-bottom: 1px solid #eee;
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.rowtxt {
|
||
flex: 0.3;
|
||
line-height: 64rpx;
|
||
height: 64rpx;
|
||
padding: 20rpx 0;
|
||
|
||
|
||
|
||
}
|
||
|
||
.rowsr {
|
||
flex: 0.7;
|
||
line-height: 64rpx;
|
||
height: 64rpx;
|
||
color: #999;
|
||
padding: 20rpx 0;
|
||
font-size: 28rpx;
|
||
|
||
}
|
||
|
||
.rowdz {
|
||
flex: 0.7;
|
||
line-height: 64rpx;
|
||
height: 128rpx;
|
||
overflow: hidden;
|
||
color: #999;
|
||
padding: 20rpx 0;
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.qubtn {
|
||
width: 80%;
|
||
margin-top: 40rpx;
|
||
height: 80rpx;
|
||
line-height: 80rpx;
|
||
background: linear-gradient(to bottom, #ff7220, #fbb700);
|
||
border-radius: 40rpx;
|
||
color: #fff;
|
||
font-size: 32rpx;
|
||
}
|
||
</style>
|