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