You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

251 lines
5.4 KiB

<template>
<!-- #ifdef H5 -->
<view v-if="isShow" class="header">
<view class="serch-wrapper row-middle">
<view class="logo">
<image class="skeleton-rect" :src="logoConfig" mode="heightFix"></image>
<view class="swiger">{{titleInfo.length ? $t(titleInfo[0].val) : ''}}</view>
</view>
<view class="input acea-row row-middle fillet skeleton-rect" hover-class="none" @click="goPage"><text
class="iconfont icon-sousuo"></text>
{{$t('搜索商品')}}</view>
</view>
</view>
<view v-else-if="isIframe" class="header">
<view class="serch-wrapper acea-row row-middle">
<view class="logo">
<image :src="logoConfig" mode="heightFix"></image>
<view class="swiger">{{titleInfo.length ? titleInfo[0].val : ''}}</view>
</view>
<view class="input acea-row row-middle fillet" hover-class="none" @click="goPage"><text
class="iconfont icon-sousuo"></text>
{{$t('搜索商品')}}</view>
</view>
</view>
<!-- #endif -->
<!-- #ifdef MP || APP-PLUS -->
<view v-if="isShow">
<view class="mp-header skeleton-rect" :style="{height:headH}">
<view class="sys-head" :style="{height:sysHeight}"></view>
<view class="serch-box" style="height: 48px;">
<view class="serch-wrapper row-middle">
<view class="logo">
<image class="skeleton-rect" :src="logoConfig" mode="heightFix"></image>
<view class="swiger">{{titleInfo.length ? titleInfo[0].val : ''}}</view>
</view>
<navigator url="/pages/goods/goods_search/index" class="input acea-row row-middle fillet"
hover-class="none"><text class="iconfont icon-sousuo"></text>
{{$t('搜索商品')}}</navigator>
</view>
</view>
</view>
</view>
<!-- #endif -->
</template>
<script>
let app = getApp();
let statusBarHeight = uni.getSystemInfoSync().statusBarHeight * 2 + 'rpx';
let headHeight = uni.getSystemInfoSync().statusBarHeight * 2 + 170 + 'rpx';
import {
goPage
} from '@/libs/order.js'
export default {
name: 'headerSerch',
props: {
dataConfig: {
type: Object,
default: () => {}
}
},
data() {
return {
logoConfig: '',
hotWords: [],
sysHeight: statusBarHeight,
headH: headHeight,
name: this.$options.name,
isShow: true,
isIframe: app.globalData.isIframe,
titleInfo: []
};
},
watch: {
dataConfig: {
immediate: true,
handler(nVal, oVal) {
if (nVal) {
this.logoConfig = nVal ? nVal.imgUrl.url : '';
this.hotWords = nVal.hotList.list || []
this.isShow = nVal.isShow.val
this.titleInfo = nVal.titleInfo && nVal.titleInfo.list.length ? nVal.titleInfo.list : [];
uni.setStorageSync('hotList', this.hotWords || []);
}
}
}
},
mounted() {
let that = this;
// #ifdef MP
this.$nextTick(function() {
// 获取小程序头部高度
let info = uni.createSelectorQuery().in(this).select(".mp-header");
info.boundingClientRect(function(data) {
that.marTop = data.height
}).exec()
})
// #endif
},
methods: {
goPage() {
goPage().then(res => {
uni.navigateTo({
url: '/pages/goods/goods_search/index'
})
})
}
}
}
</script>
<style lang="scss">
/* #ifdef H5 */
.header {
width: 100%;
height: 210rpx;
background: #fff;
background: linear-gradient(90deg, var(--view-main-start) 0%, var(--view-main-over) 100%);
border-bottom-left-radius: 60rpx;
border-bottom-right-radius: 60rpx;
.serch-wrapper {
padding: 20rpx 30rpx 0 30rpx;
.logo {
margin-right: 30rpx;
display: flex;
align-items: flex-end;
image {
width: 144rpx;
height: 50rpx;
}
.swiger {
color: #fff;
font-size: 24rpx;
margin-left: 20rpx;
margin-bottom: -2rpx;
}
}
.input {
display: flex;
height: 60rpx;
padding: 0 0 0 30rpx;
background: rgba(247, 247, 247, 1);
border: 1px solid rgba(241, 241, 241, 1);
color: #999;
font-size: 28rpx;
flex: 1;
z-index: 99;
margin: 14rpx 0;
.iconfont {
margin-right: 20rpx;
color: #555555;
}
// 没有logo直接搜索框
&.on {
width: 100%;
}
// 设置圆角
&.fillet {
border-radius: 40rpx;
}
// 文本框文字居中
&.row-center {
padding: 0;
}
}
}
}
/* #endif */
/* #ifdef MP || APP-PLUS */
.mp-header {
position: fixed;
left: 0;
top: 0;
width: 100%;
background: linear-gradient(90deg, var(--view-main-start) 0%, var(--view-main-over) 100%);
z-index: 999;
// height: 250rpx;
.serch-box {
padding-bottom: 10rpx;
}
.serch-wrapper {
height: 100%;
padding: 15rpx 30rpx 20rpx 30rpx;
.logo {
margin-right: 30rpx;
display: flex;
align-items: flex-end;
image {
width: 144rpx;
height: 50rpx;
}
.swiger {
color: #fff;
font-size: 24rpx;
margin-left: 20rpx;
margin-bottom: -2rpx;
}
}
.input {
height: 60rpx;
padding: 0 0 0 30rpx;
background: rgba(247, 247, 247, 1);
border: 1px solid rgba(241, 241, 241, 1);
color: #999;
font-size: 28rpx;
// margin: 14rpx 0;
margin-top: 20rpx;
margin-bottom: 20rpx;
flex: 1;
.iconfont {
margin-right: 20rpx;
color: #555555;
}
// 没有logo直接搜索框
&.on {
width: 70%;
}
// 设置圆角
&.fillet {
border-radius: 40rpx;
}
// 文本框文字居中
&.row-center {
padding: 0;
}
}
}
}
/* #endif */
</style>