deming/pageE/tool/ManicureOrder.vue
2020-08-04 19:08:04 +08:00

175 lines
3.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="manicure-order">
<view class="order-form">
<view class="order-name">
<view>美甲人</view>
<input type="text" v-model="name" />
</view>
<view class="order-date" @click="show=true">
<view class="title">美甲时间:</view>
<image src="../static/mine/21.png" v-if="!time"></image>
<view v-else class="time">{{ time }}</view>
</view>
<view class="order-address">
<view class="title">美甲地址:</view>
<input type="text" v-model="address" disabled />
</view>
</view>
<view class="order-btn" @click="addManicureOrder">确认订单</view>
<u-picker mode="time" v-model="show" :params="params" @confirm="chooseDate"></u-picker>
<u-toast ref="uToast" />
</view>
</template>
<script>
export default {
data() {
return {
name: '',
time: '',
address: '',
params: {
year: true,
month: true,
day: true,
hour: true,
minute: true,
second: false
},
show: false,
addressInfo: {},
}
},
onLoad() {
this.getConfigInfo();
},
methods: {
validateValue() {
if(this.$u.test.isEmpty(this.name)) {
this.showToast('姓名不能为空', 'error');
return false;
}
if(this.$u.test.isEmpty(this.time)) {
this.showToast('日期不能为空', 'error');
return false;
}
if(new Date() > new Date(this.time)) {
this.showToast('日期错误', 'error');
return false;
}
return true;
},
addManicureOrder() {
if(!this.validateValue()) return false;
this.$u.api.addManicure({
name: this.name,
time: new Date(this.time)
}).then((res)=>{
if(res.errCode == 0) {
this.$refs.uToast.show({
title: res.message,
type: 'success',
back: true,
})
} else {
this.showToast(res.message, 'error');
}
})
},
getConfigInfo() {
this.$u.api.getConfigInfo({
code: 'manicure_address',
}).then(res => {
if(res.errCode == 0) {
this.addressInfo = res.data.config;
this.address = this.addressInfo.value;
}
})
},
chooseDate(e) {
// let time = e.year + '年' + e.month + '月' + e.day + '日' + e.hour + '时' + e.minute + '分'
let time = e.year + '/' + e.month + '/' + e.day + ' ' + e.hour + ':' + e.minute
this.time = time
},
showToast(message, type) {
this.$refs.uToast.show({
title: message,
type: type,
})
},
},
};
</script>
<style lang="scss" scoped>
.manicure-order {
min-height: calc(100vh - var(--window-top));
background-color: #ECECEC;
padding-top: 1rpx;
.order-form {
> view {
height: 98rpx;
background-color: #ffffff;
padding: 35rpx 30rpx;
&:not(:last-child) {
margin-bottom: 2rpx;
}
.title {
font-size: 30rpx;
}
}
.order-name {
display: flex;
align-items: center;
> view {
font-size: 30rpx;
color: rgba(51,51,51,1);
}
> input {
padding-left: 20rpx;
flex: 1;
font-size: 28rpx;
}
}
.order-address {
display: flex;
align-items: center;
> view {
font-size: 30rpx;
color: rgba(51,51,51,1);
}
> input {
padding-left: 20rpx;
flex: 1;
font-size: 28rpx;
}
}
.order-date {
display: flex;
align-items: center;
justify-content: space-between;
> image {
width: 14rpx;
height :24rpx;
}
.time {
padding-left: 20rpx;
flex: 1;
text-align: left;
}
}
}
.order-btn {
width: 690rpx;
height: 98rpx;
background: rgba(255,120,15,1);
border-radius: 49rpx;
font-size: 36rpx;
color: rgba(255,255,255,1);
line-height: 98rpx;
text-align: center;
position: absolute;
bottom: 40rpx;
left: 50%;
transform: translate(-50%, 0);
}
}
</style>