customNav.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template>
  2. <view class="">
  3. <!-- 自定义导航栏 -->
  4. <view class="contentView" :style="{'backgroundColor':tinColor}">
  5. <!-- 状态栏占位 -->
  6. <view class="navBarBox" :style="{'marginTop':+statusBarHeight+'rpx','backgroundColor':tinColor}">
  7. <!-- 直正的导航栏内容 -->
  8. <view v-if="shownav" class="navBar" >
  9. <view v-if="jiantou==0" class="leftconten">
  10. <image class="logo" :src="fanhuisrc" mode="aspectFit" @click="leftbuttonsel(1)"></image>
  11. <view v-if="titledetl==''" class="textlableR">
  12. <view class="lableTR">{{title}}</view>
  13. </view>
  14. <view v-if="titledetl!=''" class="textlable">
  15. <text class="lableT">{{title}}</text>
  16. <text class="lableB">{{titledetl}}</text>
  17. </view>
  18. </view>
  19. <view v-if="jiantou==1" class="leftconten">
  20. <image class="logo" :src="fanhuisrcb" mode="aspectFit" @click="leftbuttonsel(1)"></image>
  21. <view v-if="titledetl==''" class="textlableR">
  22. <view class="lableTRb">{{title}}</view>
  23. </view>
  24. <view v-if="titledetl!=''" class="textlable">
  25. <view class="lableTb">{{title}}</view>
  26. <view class="lableB">{{titledetl}}</view>
  27. </view>
  28. </view>
  29. <view class="rightconten">
  30. <image v-if="rightBT1==1" class="mycart" :src="rightBTimg1" mode="scaleToFill" @click="leftbuttonsel(2)"></image>
  31. <image v-if="rightBT2==1" class="mycart" :src="rightBTimg2" mode="scaleToFill" @click="leftbuttonsel(3)"></image>
  32. <!-- <image v-if="addBT==1" class="mycart" src="/static/images/plus-circle-fill@3x.png" mode="aspectFit" @click="leftbuttonsel(4)"></image> -->
  33. <text v-if="xinzeng==1" class="xinzengTxt" @click="leftbuttonsel(5)">{{$t('schema.add')}}</text>
  34. <uni-icons v-if="addBT==1" custom-prefix="custom-icon" color="white" type="plus" size="26" @click="leftbuttonsel(4)"></uni-icons>
  35. </view>
  36. </view>
  37. </view>
  38. </view>
  39. <view v-if="shownav" :style="{height:navBarHeight+'rpx'}">
  40. </view>
  41. <view v-if="!shownav" :style="{height:statusBarHeight+'rpx'}">
  42. </view>
  43. </view>
  44. </template>
  45. <script>
  46. export default
  47. {
  48. props:{
  49. shownav:true,
  50. tinColor:'',
  51. title:'',
  52. titledetl:'',
  53. rightBT1:'',
  54. rightBTimg1:'',
  55. rightBT2:0,
  56. rightBTimg2:'',
  57. isfaver:0,
  58. addBT:0,
  59. jiantou:0,
  60. xinzeng:0
  61. },
  62. data() {
  63. return{
  64. // 状态栏高度
  65. statusBarHeight:0,
  66. // 导航栏高度
  67. navBarHeight: 50,
  68. fanhuisrc:'/static/imags/fanhuiz@3x.png',
  69. fanhuisrcb:'/static/imags/fanhuiB@3x.png',
  70. }
  71. },
  72. //第一次加载时调用
  73. created() {
  74. //获取手机状态栏高度
  75. var systemInfo = uni.getSystemInfoSync();
  76. this.statusBarHeight=systemInfo.statusBarHeight*2+30;
  77. this.navBarHeight = 50+this.statusBarHeight;
  78. },
  79. methods:{
  80. leftbuttonsel(item){
  81. //触发一个更新事件
  82. if(item==1){
  83. uni.navigateBack();
  84. }
  85. this.$emit('Enavbarsel',item);
  86. }
  87. },
  88. }
  89. </script>
  90. <style>
  91. .contentView{
  92. position: fixed;
  93. left: 0;
  94. right: 0;
  95. top: 0;
  96. z-index: 999;
  97. background-color: #006AFF;
  98. }
  99. .navBarBox{
  100. display: flex;
  101. width: 700rpx;
  102. background-color: #006AFF;
  103. }
  104. .navBar {
  105. display: flex;
  106. width: 700rpx;
  107. margin-left: 5%;
  108. padding-bottom: 10rpx;
  109. display: flex;
  110. flex-direction: row;
  111. justify-content: space-between;
  112. align-items: center;
  113. }
  114. .logo {
  115. width: 50rpx;
  116. height: 50rpx;
  117. margin-left: 6rpx;
  118. }
  119. .textlable{
  120. flex-direction:column;
  121. margin-left: 20rpx;
  122. }
  123. .textlableR{
  124. flex-direction:column;
  125. margin-left: 20rpx;
  126. }
  127. .lableTR{
  128. font-size: 32rpx;
  129. color: white;
  130. }
  131. .lableTRb{
  132. font-size: 30rpx;
  133. color: #1A1A1A;
  134. }
  135. .lableT{
  136. font-size: 30rpx;
  137. color: white;
  138. }
  139. .lableTb{
  140. font-size: 30rpx;
  141. color: #1A1A1A;
  142. text-align: left;
  143. }
  144. .lableB{
  145. font-size: 22rpx;
  146. color: white;
  147. }
  148. .leftconten{
  149. display: flex;
  150. flex-direction: row;
  151. justify-content:flex-start;
  152. }
  153. .rightconten{
  154. display: flex;
  155. flex-direction: row;
  156. justify-content:flex-end;
  157. }
  158. .mycart {
  159. margin-right: 10rpx;
  160. width: 50rpx;
  161. height: 46rpx;
  162. }
  163. .xinzengTxt{
  164. margin-right: 10rpx;
  165. color: white;
  166. font-size: 28rpx;
  167. }
  168. </style>