导航栏修正
This commit is contained in:
parent
186103e8cf
commit
9593e007e6
9
common/style/base-style.scss
Normal file
9
common/style/base-style.scss
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
$brand-theme-color:#28B389; //品牌主体红色
|
||||||
|
|
||||||
|
$border-color:#e0e0e0; //边框颜色
|
||||||
|
$border-color-light:#efefef; //边框亮色
|
||||||
|
|
||||||
|
$text-font-color-1:#000; //文字主色
|
||||||
|
$text-font-color-2:#676767; //副标题颜色
|
||||||
|
$text-font-color-3:#a7a7a7; //浅色
|
||||||
|
$text-font-color-4:#e4e4e4; //更浅
|
||||||
19
common/style/common-style.scss
Normal file
19
common/style/common-style.scss
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
view,swiper,swiper-item{
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pageBg{
|
||||||
|
background:
|
||||||
|
linear-gradient(to bottom,transparent,#fff 400rpx),
|
||||||
|
linear-gradient(to right,#beecd8 20%,#F4E2D8);
|
||||||
|
min-height: 80vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loadingLayout{
|
||||||
|
padding:30rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.safe-area-inset-bottom{
|
||||||
|
height: env(safe-area-inset-bottom);
|
||||||
|
}
|
||||||
|
|
||||||
85
components/custom-nav-bar/custom-nav-bar.vue
Normal file
85
components/custom-nav-bar/custom-nav-bar.vue
Normal file
|
|
@ -0,0 +1,85 @@
|
||||||
|
<template>
|
||||||
|
<view class="layout">
|
||||||
|
<view class="navbar">
|
||||||
|
<view :style="{ height: getStatusBarHeight() + 'px' }" class="statusBar"></view>
|
||||||
|
<view
|
||||||
|
:style="{ height: getTitleBarHeight() + 'px', marginLeft: getLeftIconLeft() + 'px' }"
|
||||||
|
class="titleBar"
|
||||||
|
>
|
||||||
|
<view class="title">{{ title }}</view>
|
||||||
|
<navigator class="search" url="/pages/search/search">
|
||||||
|
<uni-icons class="icon" color="#888" size="18" type="search"></uni-icons>
|
||||||
|
<text class="text">></text>
|
||||||
|
</navigator>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view :style="{ height: getNavBarHeight() + 'px' }" class="fill"></view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref } from 'vue'
|
||||||
|
import {
|
||||||
|
getStatusBarHeight,
|
||||||
|
getTitleBarHeight,
|
||||||
|
getNavBarHeight,
|
||||||
|
getLeftIconLeft,
|
||||||
|
} from '@/utils/system.js'
|
||||||
|
|
||||||
|
defineProps({
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: '壁纸',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.layout {
|
||||||
|
.navbar {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 10;
|
||||||
|
background: #ffddca;
|
||||||
|
|
||||||
|
.statusBar {
|
||||||
|
}
|
||||||
|
|
||||||
|
.titleBar {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #3d3d3d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search {
|
||||||
|
width: 220rpx;
|
||||||
|
height: 50rpx;
|
||||||
|
margin-left: 10rpx;
|
||||||
|
color: #3d3d3d;
|
||||||
|
font-size: 28rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
margin-left: 5rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text {
|
||||||
|
padding-left: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fill {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
<template>
|
|
||||||
<view class="header">
|
|
||||||
<view class="location-info" @click="onLocationClick">
|
|
||||||
<image class="location" :src="locationIcon"></image>
|
|
||||||
<text class="company-name">{{ companyName }}</text>
|
|
||||||
<text class="arrow">></text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
name: 'HomeHeader',
|
|
||||||
props: {
|
|
||||||
companyName: {
|
|
||||||
type: String,
|
|
||||||
default: '福鼎创特物联科技有限公司',
|
|
||||||
},
|
|
||||||
locationIcon: {
|
|
||||||
type: String,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onLocationClick() {
|
|
||||||
this.$emit('location-click')
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.header {
|
|
||||||
padding: 106rpx 30rpx 20rpx 30rpx;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
background: #ffddca;
|
|
||||||
z-index: 999;
|
|
||||||
|
|
||||||
.location-info {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 10rpx;
|
|
||||||
flex: 1;
|
|
||||||
|
|
||||||
.location {
|
|
||||||
width: 27rpx;
|
|
||||||
height: 31rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.company-name {
|
|
||||||
color: #3d3d3d;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.arrow {
|
|
||||||
font-size: 24rpx;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
@ -64,5 +64,11 @@
|
||||||
"requiredPrivateInfos": [
|
"requiredPrivateInfos": [
|
||||||
"getLocation"
|
"getLocation"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"easycom": {
|
||||||
|
"autoscan": true,
|
||||||
|
"custom": {
|
||||||
|
"^custom-nav-bar": "@/components/custom-nav-bar/custom-nav-bar.vue"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="home-container">
|
<view class="home-container">
|
||||||
<!-- 头部信息 -->
|
<!-- 头部信息 -->
|
||||||
<home-header
|
|
||||||
:company-name="companyName"
|
<custom-nav-bar title="福鼎创特物联科技有限公司"></custom-nav-bar>
|
||||||
:location-icon="commonEnum.LOCATION"
|
|
||||||
@location-click="onLocationClick"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 公告栏 -->
|
<!-- 公告栏 -->
|
||||||
<announcement-bar
|
<announcement-bar
|
||||||
|
|
@ -39,14 +36,12 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import commonEnum from '../../enum/commonEnum'
|
import commonEnum from '../../enum/commonEnum'
|
||||||
import HomeHeader from '../../components/home-header/home-header.vue'
|
|
||||||
import AnnouncementBar from '../../components/announcement-bar/announcement-bar.vue'
|
import AnnouncementBar from '../../components/announcement-bar/announcement-bar.vue'
|
||||||
import BannerSwiper from '../../components/banner-swiper/banner-swiper.vue'
|
import BannerSwiper from '../../components/banner-swiper/banner-swiper.vue'
|
||||||
import EquipmentList from '../../components/equipment-list/equipment-list.vue'
|
import EquipmentList from '../../components/equipment-list/equipment-list.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
HomeHeader,
|
|
||||||
AnnouncementBar,
|
AnnouncementBar,
|
||||||
BannerSwiper,
|
BannerSwiper,
|
||||||
EquipmentList,
|
EquipmentList,
|
||||||
|
|
@ -168,7 +163,6 @@ export default {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.home-container {
|
.home-container {
|
||||||
background: linear-gradient(to bottom, #ffddca 0px, #ffddca 450rpx, #f5f5f5 450rpx, #f5f5f5 100%);
|
background: linear-gradient(to bottom, #ffddca 0px, #ffddca 450rpx, #f5f5f5 450rpx, #f5f5f5 100%);
|
||||||
min-height: 100vh;
|
|
||||||
padding-bottom: 120rpx; /* 为底部导航留出空间 */
|
padding-bottom: 120rpx; /* 为底部导航留出空间 */
|
||||||
max-width: 750rpx;
|
max-width: 750rpx;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
|
||||||
3
uni.scss
3
uni.scss
|
|
@ -12,6 +12,9 @@
|
||||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* 引入项目自定义样式变量 */
|
||||||
|
@import '@/common/style/base-style.scss';
|
||||||
|
|
||||||
/* 颜色变量 */
|
/* 颜色变量 */
|
||||||
|
|
||||||
/* 行为相关颜色 */
|
/* 行为相关颜色 */
|
||||||
|
|
|
||||||
27
utils/system.js
Normal file
27
utils/system.js
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
const SYSTEM_INFO = uni.getSystemInfoSync()
|
||||||
|
|
||||||
|
export const getStatusBarHeight = () => SYSTEM_INFO.statusBarHeight || 15
|
||||||
|
|
||||||
|
export const getTitleBarHeight = () => {
|
||||||
|
if (uni.getMenuButtonBoundingClientRect) {
|
||||||
|
let { top, height } = uni.getMenuButtonBoundingClientRect()
|
||||||
|
return height + (top - getStatusBarHeight()) * 2
|
||||||
|
} else {
|
||||||
|
return 40
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getNavBarHeight = () => getStatusBarHeight() + getTitleBarHeight()
|
||||||
|
|
||||||
|
export const getLeftIconLeft = () => {
|
||||||
|
// #ifdef MP-TOUTIAO
|
||||||
|
let {
|
||||||
|
leftIcon: { left, width },
|
||||||
|
} = tt.getCustomButtonBoundingClientRect()
|
||||||
|
return left + parseInt(width)
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
// #ifndef MP-TOUTIAO
|
||||||
|
return 0
|
||||||
|
// #endif
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user