This commit is contained in:
2020-06-08 15:23:23 +08:00
parent e8c74df8a0
commit 233cb82ee4
44 changed files with 2461 additions and 82 deletions

112
pageE/tool/Manicure.vue Normal file
View File

@@ -0,0 +1,112 @@
<template>
<view class="manicure">
<view>
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88" ></u-tabs-swiper>
</view>
<swiper :current="swiperCurrent" @animationfinish="animationfinish">
<swiper-item class="swiper-item">
<scroll-view scroll-y class="order-list">
<view v-for="(item, index) in 6" :key="index" class="order-item">
<view class="order-title">
<view class="order-text">订单</view>
<view class="order-status">已预约</view>
</view>
<view class="order-name">美甲人姓名xxx</view>
<view class="order-date">时间2020-04-12</view>
</view>
</scroll-view>
</swiper-item>
<swiper-item class="swiper-item">
<scroll-view scroll-y class="none-page">
<view></view>
</scroll-view>
</swiper-item>
</swiper>
</view>
</template>
<script>
export default {
data() {
return {
list: [{
name: '我的订单'
}, {
name: '申请表'
}],
current: 0,
swiperCurrent: 0
}
},
onShow() {
this.current = 0;
this.swiperCurrent = 0;
},
methods: {
tabsChange(index) {
this.swiperCurrent = index;
this.toApplyPage(index);
},
animationfinish(e) {
let current = e.detail.current;
this.swiperCurrent = current;
this.current = current;
this.toApplyPage(current);
},
toApplyPage(index) {
if(index == 1) {
uni.navigateTo({
url: '/pageE/tool/ManicureOrder'
});
}
}
},
};
</script>
<style lang="scss" scoped>
.manicure {
min-height: calc(100vh - var(--window-top));
background-color: #ECECEC;
display: flex;
flex-direction: column;
> uni-swiper {
flex: 1;
}
.swiper-item {
.order-list {
box-sizing: border-box;
padding: 20rpx 30rpx 0;
.order-item {
padding: 30rpx;
width:690rpx;
height: 229rpx;
background: rgba(255,255,255,1);
border-radius: 10rpx;
margin-bottom: 20rpx;
.order-title {
display: flex;
align-items: center;
justify-content: space-between;
.order-text {
font-size: 30rpx;
color: rgba(51,51,51,1);
}
.order-status {
font-size: 28rpx;
color: rgba(255,120,15,1);
}
}
.order-name {
font-size: 32rpx;
font-weight: 500;
color: rgba(51,51,51,1);
margin: 43rpx 0 45rpx;
}
.order-date {
font-size: 24rpx;
color: rgba(153,153,153,1);
}
}
}
}
}
</style>

View File

@@ -0,0 +1,94 @@
<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>美甲时间</view>
<img src="../static/mine/21.png" v-if="!time" />
<view v-else>{{ time }}</view>
</view>
</view>
<view class="order-btn">确认订单</view>
<u-picker mode="time" v-model="show" :params="params" @confirm="chooseDate"></u-picker>
</view>
</template>
<script>
export default {
data() {
return {
name: '',
time: '',
params: {
year: true,
month: true,
day: true,
hour: true,
minute: true,
second: false
},
show: false
}
},
methods: {
chooseDate(e) {
let time = e.year + '年' + e.month + '月' + e.day + '日' + e.hour + '时' + e.minute + '分'
this.time = time
}
},
};
</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;
}
}
.order-name {
display: flex;
align-items: center;
> view {
font-size: 30rpx;
color: rgba(51,51,51,1);
}
> input {
flex: 1;
text-align: right;
}
}
.order-date {
display: flex;
align-items: center;
justify-content: space-between;
> img {
width: 14rpx;
height :24rpx;
}
}
}
.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>

View File

@@ -0,0 +1,84 @@
<template>
<view class="mine-history">
<view class="history-box">
<view v-for="(item, index) in historyList" :key="index" class="history-item">
<view class="item-title">
<img src="../static/mine/23.png" />
<view>小米店铺</view>
</view>
<!-- <view class="item-image">
<img src="../static/mine/23.png" />
</view> -->
<img src="../static/mine/23.png" class="item-image" />
<view class="item-info">
<view class="info-name">{{ item }}</view>
<img src="../static/mine/22.png" />
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
historyList: [1, 2, 3, 6]
};
},
onLoad() {},
methods: {}
};
</script>
<style lang="scss" scoped>
.mine-history {
min-height: calc(100vh - var(--window-top));
background: #ECECEC;
.history-box {
padding: 20rpx 30rpx 0;
display: flex;
flex-wrap: wrap;
.history-item {
width: 220rpx;
height: 290rpx;
background: rgba(255,255,255,1);
border-radius: 10rpx;
padding: 20rpx 20rpx 22rpx;
margin: 0 10rpx 20rpx 0;
.item-title {
display: flex;
align-items: center;
> img {
width: 50rpx;
height: 50rpx;
border-radius: 50%;
margin-right: 19rpx;
}
> view {
font-size: 24rpx;
color: rgba(51,51,51,1);
}
}
.item-image {
margin: 20rpx 0 17rpx;
width: 180rpx;
height: 140rpx;
border-radius: 10rpx;
}
.item-info {
display: flex;
justify-content: space-between;
align-items: center;
.info-name {
font-size: 22rpx;
color: rgba(51,51,51,1);
}
> img {
width: 37rpx;
height: 8rpx;
}
}
}
}
}
</style>

149
pageE/tool/SendWash.vue Normal file
View File

@@ -0,0 +1,149 @@
<template>
<view class="wash">
<view>
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88" ></u-tabs-swiper>
</view>
<swiper :current="swiperCurrent" @animationfinish="animationfinish">
<swiper-item class="swiper-item">
<scroll-view scroll-y class="order-list">
<view v-for="(item, index) in 6" :key="index" class="order-item">
<view class="order-title">
<view class="order-text">订单状态</view>
<view class="order-status">已预约</view>
</view>
<view class="order-info">
<image src="../static/mine/23.png"></image>
<view>
<view>骑手名字xxx</view>
<view>联系方式123456789</view>
<view>所属公司xx公司</view>
</view>
</view>
</view>
</scroll-view>
</swiper-item>
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;" class="none-page">
<view></view>
</scroll-view>
</swiper-item>
<swiper-item class="swiper-item">
<scroll-view scroll-y class="comment">
<view v-for="(item, index) in 3" :key="index" class="comment-item">
<Comment></Comment>
</view>
</scroll-view>
</swiper-item>
</swiper>
</view>
</template>
<script>
import Comment from '@/components/mine/comment/index'
export default {
data() {
return {
list: [{
name: '我的订单'
}, {
name: '申请表'
}, {
name: '评价'
}],
current: 0,
swiperCurrent: 0
}
},
components: {
Comment
},
onShow() {
this.current = 0;
this.swiperCurrent = 0;
},
methods: {
tabsChange(index) {
this.swiperCurrent = index;
this.toApplyPage(index);
},
animationfinish(e) {
let current = e.detail.current;
this.swiperCurrent = current;
this.current = current;
this.toApplyPage(current);
},
toApplyPage(index) {
if(index == 1) {
uni.navigateTo({
url: '/pageE/tool/WashOrder'
});
}
}
},
};
</script>
<style lang="scss" scoped>
.wash {
min-height: calc(100vh - var(--window-top));
background-color: #ECECEC;
display: flex;
flex-direction: column;
> uni-swiper {
flex: 1;
}
.swiper-item {
padding-top: 20rpx;
.order-list {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 0 30rpx;
.order-item {
padding: 30rpx;
width:690rpx;
height: 308rpx;
background: rgba(255,255,255,1);
border-radius: 10rpx;
margin-bottom: 20rpx;
.order-title {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 30rpx;
.order-text {
font-size: 30rpx;
color: rgba(51,51,51,1);
}
.order-status {
font-size: 28rpx;
color: rgba(255,120,15,1);
}
}
.order-info {
display: flex;
align-items: center;
> image {
width: 180rpx;
height: 160rpx;
border-radius: 10rpx;
margin-right: 30rpx;
}
> view {
font-size: 26rpx;
color: rgba(51,51,51,1);
> view:not(:last-child) {
margin-bottom: 19rpx;
}
}
}
}
}
.comment {
width: 100%;
height: 100%;
.comment-item {
margin-bottom: 20rpx;
}
}
}
}
</style>

145
pageE/tool/WashOrder.vue Normal file
View File

@@ -0,0 +1,145 @@
<template>
<view class="wash-order">
<view class="order-info">
<view class="order-name">
<view class="title">送洗人</view>
<input type="text" v-model="name" />
</view>
<view class="order-phone">
<view class="title">手机号</view>
<input type="text" v-model="phone" />
</view>
<view class="order-area">
<view class="title">省市区</view>
<input type="text" v-model="area" />
<view class="location">
<image src="../static/mine/28.png"></image>
<view>定位</view>
</view>
</view>
<view class="order-address">
<view class="title">详细地址</view>
<input type="text" v-model="address" />
</view>
</view>
<view class="upload-image">
<view class="title">上传商品图片</view>
<u-upload
ref="uUpload"
@on-uploaded="onUploaded"
:custom-btn="true"
:max-count="count"
:auto-upload="false"
>
<view slot="addBtn" class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150">
<img src="../static/mine/27.png" />
</view>
</u-upload>
</view>
<view class="wash-btn">确认送洗</view>
</view>
</template>
<script>
export default {
data() {
return {
count: 4, // 最大图片数量
name: '',
phone: '',
area: '',
address: ''
}
},
methods: {
submit() {
this.$refs.uUpload.upload();
},
onUploaded(list) {
console.log(list)
}
},
};
</script>
<style lang="scss" scoped>
.wash-order {
border-top: 1rpx solid #ECECEC;
.order-info {
> view {
width: 750rpx;
height: 98rpx;
background: rgba(255,255,255,1);
padding: 35rpx 30rpx;
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
&::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 2rpx;
background-color: #ECECEC;
}
.title {
font-size: 30rpx;
color: rgba(51,51,51,1);
margin-right: 10rpx;
}
> input {
flex: 1;
text-align: right;
}
}
.order-area {
.location {
margin-left: 20rpx;
text-align: center;
font-size: 22rpx;
color: rgba(255,120,15,1);
> image {
width: 26rpx;
height: 32rpx;
margin-bottom: 10rpx;
}
}
}
}
.upload-image {
padding: 35rpx 30rpx;
.title {
font-size: 30rpx;
color: rgba(51,51,51,1);
margin-bottom: 34rpx;
}
.slot-btn {
width: 140rpx;
height: 140rpx;
background: rgba(236,236,236,1);
border-radius: 10rpx;
text-align: center;
> img {
width: 54rpx;
height: 49rpx;
margin-top: 48rpx;
}
}
}
.wash-btn {
width: 690rpx;
height: 98rpx;
background: rgba(255,120,15,1);
border-radius: 49rpx;
position: absolute;
bottom: 40rpx;
left: 50%;
transform: translate(-50%, 0);
font-size: 36rpx;
color:rgba(255,255,255,1);
text-align: center;
line-height: 98rpx;
}
}
</style>