6 changed files with 204 additions and 0 deletions
-
17src/pages.json
-
7src/styles/iconfonts.scss
-
81src/subpackage/groupon/components/search_bar.vue
-
45src/subpackage/groupon/components/ticket_item.vue
-
32src/subpackage/groupon/pages/list.vue
-
22src/subpackage/groupon/pages/stadiums.vue
@ -0,0 +1,81 @@ |
|||
<script setup> |
|||
import { onLoad } from '@dcloudio/uni-app'; |
|||
import { reactive, ref } from "vue"; |
|||
onLoad(() => { |
|||
|
|||
}); |
|||
|
|||
</script> |
|||
|
|||
<template> |
|||
<view class="search-bar"> |
|||
<view class="sb-frame"> |
|||
<picker class="sf-picker" mode="time"> |
|||
<view class="sf-select"> |
|||
<view class="ss-val">广州市</view> |
|||
<text class="ss-icon"></text> |
|||
</view> |
|||
</picker> |
|||
<view class="sf-ipt"> |
|||
<text class="si-icon"></text> |
|||
<input class="si-ipt" placeholder="搜索门店" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<style lang="scss" scoped> |
|||
.search-bar{ |
|||
padding: 8upx 24upx; |
|||
background: #fff; |
|||
.sb-frame{ |
|||
padding: 8upx 20upx; |
|||
height: 72upx; |
|||
border-radius: 36upx; |
|||
background: #F2F2F2; |
|||
@include ctf(space-between); |
|||
.sf-picker{ |
|||
align-self: stretch; |
|||
flex-shrink: 0; |
|||
.sf-select{ |
|||
height: 100%; |
|||
width: 130upx; |
|||
border-right: 1px solid #EAEAEA; |
|||
@include ctf(center); |
|||
.ss-val{ |
|||
@include flcw(24upx, 34upx, #666); |
|||
@include tHide; |
|||
} |
|||
@include rightArrow; |
|||
.ss-icon{ |
|||
flex-shrink: 0; |
|||
margin-left: 4upx; |
|||
font-size: 24upx; |
|||
font-family: rightArrow; |
|||
color: #666666; |
|||
} |
|||
} |
|||
} |
|||
.sf-ipt{ |
|||
flex-grow: 1; |
|||
align-self: stretch; |
|||
padding-left: 10upx; |
|||
@include ctf; |
|||
@include searchIcon; |
|||
.si-icon{ |
|||
flex-shrink: 0; |
|||
margin-right: 10upx; |
|||
font-size: 34upx; |
|||
font-family: searchIcon; |
|||
color: #9F9F9F; |
|||
} |
|||
.si-ipt{ |
|||
flex-grow: 1; |
|||
height: 100%; |
|||
@include flcw(24upx, 34upx, #666666); |
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,45 @@ |
|||
<script setup> |
|||
import { reactive, ref } from "vue"; |
|||
|
|||
</script> |
|||
|
|||
<template> |
|||
<view class="ticket-item"> |
|||
<view class="ti-left"> |
|||
<view class="tl-tit">订场100元代金券【欧轩运动生活】</view> |
|||
<view class="tl-time">有效时间:2025.03.03至2026.03.03</view> |
|||
</view> |
|||
<view class="ti-btn">立即使用</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<style lang="scss" scoped> |
|||
.ticket-item{ |
|||
padding: 24upx; |
|||
border: 1px solid #FFD2D1; |
|||
border-radius: 20upx; |
|||
background-color: rgba($color: #FE5353, $alpha: .05); |
|||
@include ctf(space-between); |
|||
.ti-left{ |
|||
flex-grow: 1; |
|||
.tl-tit{ |
|||
@include flcw(32upx, 44upx, #333); |
|||
@include tHide(2); |
|||
} |
|||
.tl-time{ |
|||
@include flcw(24upx, 52upx, #9A9A9D); |
|||
@include tHide; |
|||
} |
|||
} |
|||
.ti-btn{ |
|||
flex-grow: 0; |
|||
flex-shrink: 0; |
|||
margin-left: 20upx; |
|||
padding: 0 20upx; |
|||
text-align: center; |
|||
border-radius: 50upx; |
|||
border: 2upx solid #E11E1E; |
|||
@include flcw(24upx, 46upx, #E11E1E); |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,32 @@ |
|||
<script setup> |
|||
import { onLoad } from '@dcloudio/uni-app'; |
|||
import { reactive, ref } from "vue"; |
|||
import ticketItem from "../components/ticket_item.vue"; |
|||
onLoad(() => { |
|||
|
|||
}); |
|||
|
|||
</script> |
|||
|
|||
<template> |
|||
<view class="groupon-list"> |
|||
<view class="gl-item" v-for="i in 3" :key="i"> |
|||
<ticket-item></ticket-item> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<style lang="scss" scoped> |
|||
.groupon-list{ |
|||
padding: 24upx; |
|||
@include isPd(24upx); |
|||
.gl-item{ |
|||
padding: 24upx; |
|||
border-radius: 20upx; |
|||
background-color: #fff; |
|||
&+.gl-item{ |
|||
margin-top: 22upx; |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,22 @@ |
|||
<script setup> |
|||
import { onLoad } from '@dcloudio/uni-app'; |
|||
import { reactive, ref } from "vue"; |
|||
import searchBar from "../components/search_bar.vue"; |
|||
onLoad(() => { |
|||
|
|||
}); |
|||
|
|||
</script> |
|||
|
|||
<template> |
|||
<view class="stadium-select"> |
|||
<search-bar></search-bar> |
|||
123 |
|||
</view> |
|||
</template> |
|||
|
|||
<style lang="scss" scoped> |
|||
.stadium-select{ |
|||
|
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue