This commit is contained in:
zyronon 2024-03-26 00:01:27 +08:00
parent 1dfaf68d7e
commit c0c9ab8c44
3 changed files with 66 additions and 88 deletions

View File

@ -3,21 +3,11 @@
ref="page" ref="page"
> >
<header ref="header"> <header ref="header">
<div class="top">
<Icon <Icon
@click="$back()" @click="$back()"
icon="material-symbols-light:arrow-back-ios-new"/> icon="material-symbols-light:arrow-back-ios-new"/>
<div class="right"> <div class="option" @click="nav('/home/search')">
<div class="search">
<Icon icon="jam:search"/> <Icon icon="jam:search"/>
<div class="placeholder">多功能电源插座</div>
</div>
<div class="option">
<Icon icon="jam:search"/>
<Icon icon="mynaui:star"/>
<Icon icon="ph:share-fat"/>
</div>
</div>
</div> </div>
</header> </header>
@ -27,7 +17,14 @@
<img :src="item" alt=""> <img :src="item" alt="">
</SlideItem> </SlideItem>
</SlideHorizontal> </SlideHorizontal>
<div class="index">{{ state.index + 1 }}/{{ state.detail.imgs.length }}</div> <div class="index">
{{ state.index + 1 }}/{{ state.detail.imgs.length }}
</div>
<div class="indicator-bar">
<div class="indicator"
:class="[i <= state.index+1 && 'active']"
v-for="i in state.detail.imgs.length"></div>
</div>
</div> </div>
<div class="content"> <div class="content">
@ -36,7 +33,7 @@
<img src="https://cdn.seovx.com/?mom=302" alt="" class="avatar"> <img src="https://cdn.seovx.com/?mom=302" alt="" class="avatar">
<div class="right"> <div class="right">
<div class="name">店铺名</div> <div class="name">店铺名</div>
<div class="r">进店</div> <div class="r">关注</div>
</div> </div>
</header> </header>
<div class="desc"> <div class="desc">
@ -68,20 +65,20 @@
</div> </div>
<div class="options"> <div class="options">
<div class="option"> <div class="option">
<Icon icon="iconoir:shop-window"/> <Icon icon="solar:heart-linear"/>
<div class="text">进店</div> <div class="text">678</div>
</div> </div>
<div class="option"> <div class="option">
<Icon icon="icon-park-outline:message-emoji"/> <Icon icon="mage:message-dots-round" class="icon"/>
<div class="text">客服</div> <div class="text">178</div>
</div> </div>
<div class="option"> <div class="option">
<Icon icon="icon-park-outline:shopping"/> <Icon icon="mage:star"/>
<div class="text">购物车</div> <div class="text">82</div>
</div> </div>
<div class="option"> <div class="option">
<Icon icon="icon-park-outline:shopping"/> <Icon icon="ph:share-fat-light"/>
<div class="text">购物车</div> <div class="text">23</div>
</div> </div>
</div> </div>
</div> </div>
@ -95,6 +92,7 @@ import {reactive, ref} from "vue";
import goods from "@/assets/data/goods"; import goods from "@/assets/data/goods";
import {useNav} from "@/utils/hooks/useNav"; import {useNav} from "@/utils/hooks/useNav";
import Utils from "@/utils"; import Utils from "@/utils";
import {Icon} from "@iconify/vue";
let activeIndexs = ref([]) let activeIndexs = ref([])
const nav = useNav() const nav = useNav()
@ -121,7 +119,7 @@ function scroll() {
const state = reactive({ const state = reactive({
detail: goods.list[1], detail: goods.list[1],
index: 2, index: 0,
list: goods.list, list: goods.list,
listEl: null, listEl: null,
fixed: false fixed: false
@ -154,53 +152,18 @@ function toggle(i) {
top: 0; top: 0;
width: 100vw; width: 100vw;
z-index: 9; z-index: 9;
.top {
height: var(--common-header-height);
display: flex; display: flex;
align-items: center; justify-content: space-between;
padding: 0 10rem; padding: 15rem;
box-sizing: border-box;
svg { svg {
font-size: 22rem; font-size: 20rem;
background: rgba(176, 176, 176, 0.4); background: rgba(176, 176, 176, 0.4);
padding: 5rem; padding: 5rem;
color: white; color: white;
border-radius: 50%; border-radius: 50%;
} }
.right {
margin-left: 10rem;
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
.search {
font-size: 12rem;
border-radius: 20rem;
padding: 5rem 10rem;
flex: 1;
background: rgb(243, 243, 243);
display: flex;
align-items: center;
color: gray;
visibility: hidden;
svg {
padding: 0;
background: unset;
}
}
.option {
margin-left: 15rem;
display: flex;
align-items: center;
gap: 8rem;
}
}
}
} }
.slide-imgs { .slide-imgs {
@ -214,6 +177,26 @@ function toggle(i) {
touch-action: none; touch-action: none;
} }
.indicator-bar {
position: absolute;
bottom: 5rem;
left: 3vw;
width: 94vw;
display: flex;
gap: 5rem;
.indicator {
background: rgba(162, 160, 160, 0.5);
height: 3rem;
flex: 1;
border-radius: 2rem;
}
.active {
background: rgba(250, 246, 246, 0.58);
}
}
.index { .index {
font-size: 12rem; font-size: 12rem;
position: absolute; position: absolute;
@ -281,6 +264,7 @@ function toggle(i) {
width: 20rem; width: 20rem;
height: 20rem; height: 20rem;
} }
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
@ -340,14 +324,16 @@ function toggle(i) {
background: var(--color-message); background: var(--color-message);
border-top: 1px solid rgba(white, .1); border-top: 1px solid rgba(white, .1);
display: flex; display: flex;
padding: 10rem; align-items: center;
padding: 8rem 10rem;
padding-right: 0;
box-sizing: border-box; box-sizing: border-box;
gap: 6rem; gap: 6rem;
.input-wrap { .input-wrap {
width: 110rem; width: 110rem;
padding-left: 15rem; padding-left: 15rem;
height: 40rem; height: 34rem;
border-radius: 30rem; border-radius: 30rem;
background: var(--second-btn-color-tran); background: var(--second-btn-color-tran);
color: gray; color: gray;
@ -365,17 +351,11 @@ function toggle(i) {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
flex-direction: column; flex-direction: column;
font-size: 11rem; font-size: 13rem;
color: #646464; color: white;
svg { svg {
font-size: 18rem; font-size: 24rem;
}
&:first-child {
svg {
color: red;
}
} }
} }
} }

View File

@ -4,10 +4,8 @@
<dy-back mode="light" @click="$back" class="mr1r"></dy-back> <dy-back mode="light" @click="$back" class="mr1r"></dy-back>
<BSearch placeholder="搜索用户名字/抖音号" <BSearch placeholder="搜索用户名字/抖音号"
:isShowRightText="true" :isShowRightText="true"
rightTextColor="white"
@notice="$no" @notice="$no"
> >
<img class="scan" src="../../assets/img/icon/scan-gray.png" @click.stop="$nav('/scan')">
</BSearch> </BSearch>
</div> </div>
<div class="content"> <div class="content">
@ -742,9 +740,9 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
color: var(--second-text-color);
.right { .right {
color: var(--second-text-color);
display: flex; display: flex;
align-items: center; align-items: center;
@ -770,7 +768,6 @@ export default {
.desc { .desc {
max-width: 80%; max-width: 80%;
font-size: 14rem;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;

View File

@ -79,7 +79,6 @@ const routes = [
{path: '/home/music', component: Music}, {path: '/home/music', component: Music},
{path: '/home/music-rank-list', component: MusicRankList}, {path: '/home/music-rank-list', component: MusicRankList},
{path: '/home/live', component: LivePage}, {path: '/home/live', component: LivePage},
{path: '/home/search', component: Search},
{path: '/shop/detail', component: GoodsDetail}, {path: '/shop/detail', component: GoodsDetail},
@ -151,6 +150,8 @@ const routes = [
{path: '/video-detail', name: 'video-detail', component: VideoDetail}, {path: '/video-detail', name: 'video-detail', component: VideoDetail},
{path: '/album-detail', name: 'video-detail', component: AlbumDetail}, {path: '/album-detail', name: 'video-detail', component: AlbumDetail},
{path: '/home/search', component: Search},
] ]
export default routes export default routes