210 lines
5.7 KiB
Vue
210 lines
5.7 KiB
Vue
|
<template>
|
|||
|
<!-- #ifdef H5 -->
|
|||
|
<view class="header" :style="'background: '+ bgColor +' ;margin-top:'+ mbConfig +'rpx;'">
|
|||
|
<view class="serch-wrapper acea-row row-between-wrapper" :style="'padding-left:'+prConfig+'rpx;'">
|
|||
|
<view v-if="logoConfig" class="logo skeleton-rect">
|
|||
|
<image :src="logoConfig" mode=""></image>
|
|||
|
</view>
|
|||
|
<navigator :url="merId ? '/pages/store/list/index?mer_id='+merId : '/pages/columnGoods/goods_search/index'" :class="logoConfig ? 'input' : 'uninput'" class="skeleton-rect box" hover-class="none"
|
|||
|
:style="'border-radius:'+boxStyle+'rpx;text-align:'+txtStyle">
|
|||
|
<text class="iconfont icon-xiazai5"></text>
|
|||
|
搜索商品
|
|||
|
</navigator>
|
|||
|
<navigator class="btn skeleton-rect" url="/pages/chat/customer_list/index?type=0" hover-class="none">
|
|||
|
<view class="iconfont icon-xiaoxi" :style="'color:'+iconColor"></view>
|
|||
|
<text class="iconnum" v-if="userInfo.total_unread">{{ userInfo.total_unread }}</text>
|
|||
|
</navigator>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<!-- #endif -->
|
|||
|
<!-- #ifdef MP || APP-PLUS -->
|
|||
|
<view>
|
|||
|
<view class="mp-header" :style="'background: '+ bgColor +' ;margin-top:'+ mbConfig +'rpx;'">
|
|||
|
<view class="sys-head skeleton-rect" :style="{ height: statusBarHeight }"></view>
|
|||
|
<view class="serch-box skeleton-rect" style="height: 43px;">
|
|||
|
<view class="serch-wrapper flex" :style="'padding-left:'+prConfig+'rpx;'">
|
|||
|
<view v-if="logoConfig" class="logo skeleton-rect"><image :src="logoConfig" mode=""></image></view>
|
|||
|
<navigator :url="merId ? '/pages/store/list/index?mer_id='+merId : '/pages/columnGoods/goods_search/index'" :class="logoConfig ? 'input' : 'uninput'"
|
|||
|
hover-class="none" class="skeleton-rect box" :style="'border-radius:'+boxStyle+'rpx;text-align:'+txtStyle">
|
|||
|
<text class="iconfont icon-xiazai5"></text>
|
|||
|
搜索商品
|
|||
|
</navigator>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view :style="'height:'+marTop+'px;'"></view>
|
|||
|
</view>
|
|||
|
<!-- #endif -->
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
// | Author: CRMEB Team <admin@crmeb.com>
|
|||
|
// +----------------------------------------------------------------------
|
|||
|
let statusBarHeight = uni.getSystemInfoSync().statusBarHeight*2 + 'rpx';
|
|||
|
export default {
|
|||
|
name: 'headerSerch',
|
|||
|
props: {
|
|||
|
dataConfig: {
|
|||
|
type: Object,
|
|||
|
default: () => {}
|
|||
|
},
|
|||
|
userInfo: {
|
|||
|
type: Object,
|
|||
|
default: () => {}
|
|||
|
},
|
|||
|
merId: {
|
|||
|
type: String || Number,
|
|||
|
default: ''
|
|||
|
}
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
statusBarHeight: statusBarHeight,
|
|||
|
marTop:0,
|
|||
|
searchH: 0,
|
|||
|
bgColor: this.dataConfig.bgColor && this.dataConfig.bgColor.color[0].item,
|
|||
|
iconColor: this.dataConfig.iconColor && this.dataConfig.iconColor.color[0].item,
|
|||
|
boxStyle: this.dataConfig.boxStyle.type ? '0' : '32',
|
|||
|
logoConfig: this.dataConfig.logoConfig.url,
|
|||
|
mbConfig: this.dataConfig.mbConfig.val*2,
|
|||
|
prConfig: this.dataConfig.prConfig.val*2,
|
|||
|
txtStyle: this.dataConfig.txtStyle.type ? 'center' : 'xleft',
|
|||
|
};
|
|||
|
},
|
|||
|
mounted(){
|
|||
|
let that = this;
|
|||
|
// #ifdef H5
|
|||
|
// 获取H5 搜索框高度
|
|||
|
setTimeout(() => {
|
|||
|
let appSearchH = uni.createSelectorQuery().select('.serch-wrapper');
|
|||
|
appSearchH
|
|||
|
.boundingClientRect(function(data) {
|
|||
|
that.searchH = data.height;
|
|||
|
})
|
|||
|
.exec();
|
|||
|
}, 800);
|
|||
|
// #endif
|
|||
|
// #ifdef MP || APP-PLUS
|
|||
|
setTimeout(() => {
|
|||
|
// 获取小程序头部高度
|
|||
|
let info = uni.createSelectorQuery().in(this).select(".mp-header");
|
|||
|
info.boundingClientRect(function(data) {
|
|||
|
that.marTop = data.height
|
|||
|
}).exec()
|
|||
|
}, 300)
|
|||
|
// #endif
|
|||
|
},
|
|||
|
methods: {}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss" scoped>
|
|||
|
.header {
|
|||
|
width: 100%;
|
|||
|
background: #ffffff;
|
|||
|
.btn {
|
|||
|
position: relative;
|
|||
|
margin-left: 30rpx;
|
|||
|
.iconfont {
|
|||
|
font-size: 45rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
.iconnum {
|
|||
|
min-width: 6px;
|
|||
|
color: #fff;
|
|||
|
background: #e93323;
|
|||
|
border-radius: 15rpx;
|
|||
|
position: absolute;
|
|||
|
right: -10rpx;
|
|||
|
top: -10rpx;
|
|||
|
font-size: 10px;
|
|||
|
padding: 0 4px;
|
|||
|
}
|
|||
|
.serch-wrapper {
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
padding: 20rpx 30rpx 20rpx 30rpx;
|
|||
|
.box{
|
|||
|
flex: 1;
|
|||
|
}
|
|||
|
.logo {
|
|||
|
width: 127rpx;
|
|||
|
height: 46rpx;
|
|||
|
margin-right: 20rpx;
|
|||
|
}
|
|||
|
image {
|
|||
|
width: 118rpx;
|
|||
|
height: 42rpx;
|
|||
|
}
|
|||
|
.input,.uninput {
|
|||
|
line-height: 64rpx;
|
|||
|
padding: 0 0 0 30rpx;
|
|||
|
background: rgba(237, 237, 237, 1);
|
|||
|
border: 1px solid rgba(241, 241, 241, 1);
|
|||
|
color: #bbbbbb;
|
|||
|
font-size: 28rpx;
|
|||
|
.iconfont {
|
|||
|
margin-right: 20rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/* #ifdef MP || APP-PLUS */
|
|||
|
.mp-header {
|
|||
|
z-index: 999;
|
|||
|
position: fixed;
|
|||
|
left: 0;
|
|||
|
top: 0;
|
|||
|
width: 100%;
|
|||
|
/* #ifdef H5 */
|
|||
|
padding-bottom: 20rpx;
|
|||
|
/* #endif */
|
|||
|
background-color: #fff;
|
|||
|
.serch-wrapper {
|
|||
|
height: 100%;
|
|||
|
align-items: center;
|
|||
|
padding: 0 50rpx 0 53rpx;
|
|||
|
image {
|
|||
|
width: 118rpx;
|
|||
|
height: 42rpx;
|
|||
|
margin-right: 30rpx;
|
|||
|
}
|
|||
|
.input,.uninput {
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
/* #ifndef APP-PLUS */
|
|||
|
width: 305rpx;
|
|||
|
/* #endif */
|
|||
|
/* #ifdef APP-PLUS */
|
|||
|
flex: 1;
|
|||
|
width: 500rpx;
|
|||
|
/* #endif */
|
|||
|
height: 58rpx;
|
|||
|
padding: 0 0 0 30rpx;
|
|||
|
background: rgba(247, 247, 247, 1);
|
|||
|
border: 1px solid rgba(241, 241, 241, 1);
|
|||
|
border-radius: 29rpx;
|
|||
|
color: #bbbbbb;
|
|||
|
font-size: 28rpx;
|
|||
|
.iconfont {
|
|||
|
margin-right: 20rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
.uninput {
|
|||
|
/* #ifdef MP */
|
|||
|
min-width: 450rpx;
|
|||
|
max-width: 480rpx;
|
|||
|
/* #endif*/
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
/* #endif */
|
|||
|
</style>
|