ut-tabar.vue 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <up-popup v-model:show="showStorage" title="请选择操作类型" bgColor="#F7F7F7" round="0" zIndex="1000" closeable>
  3. <view class="min-h-600">
  4. <view class="c-#333 f-s-34 f-w-500 pd-24">请选择操作类型</view>
  5. <view class="pd2-10-24">
  6. <up-grid :border="false" :column="3" gap="10rpx">
  7. <up-grid-item>
  8. <view class="pd2-10-0 d-flex flex-cln a-c j-c" @click="showStorage = false;$u.route({ url: '/plant/storage/storage-room/list/index' })">
  9. <view class="w-109 h-109 bg-#fff radius-50% d-flex a-c j-c mb-10">
  10. <image class="w-72 h-72" src="@/static/images/plant/storage/nav_kfgl_icon.png" mode="widthFix" />
  11. </view>
  12. <view class="c-#333 f-s-28 text-center">库房管理</view>
  13. </view>
  14. </up-grid-item>
  15. <up-grid-item>
  16. <view class="pd2-10-0 d-flex flex-cln a-c j-c">
  17. <view class="w-109 h-109 bg-#fff radius-50% d-flex a-c j-c mb-10">
  18. <image class="w-72 h-72" src="@/static/images/plant/storage/nav_nzk_icon.png" mode="widthFix" />
  19. </view>
  20. <view class="c-#333 f-s-28 text-center">农资库</view>
  21. </view>
  22. </up-grid-item>
  23. <up-grid-item>
  24. <view class="pd2-10-0 d-flex flex-cln a-c j-c">
  25. <view class="w-109 h-109 bg-#fff radius-50% d-flex a-c j-c mb-10">
  26. <image class="w-72 h-72" src="@/static/images/plant/storage/nav_zyk_icon.png" mode="widthFix" />
  27. </view>
  28. <view class="c-#333 f-s-28 text-center">种源库</view>
  29. </view>
  30. </up-grid-item>
  31. <up-grid-item>
  32. <view class="pd2-10-0 d-flex flex-cln a-c j-c">
  33. <view class="w-109 h-109 bg-#fff radius-50% d-flex a-c j-c mb-10">
  34. <image class="w-72 h-72" src="@/static/images/plant/storage/nav_xhk_icon.png" mode="widthFix" />
  35. </view>
  36. <view class="c-#333 f-s-28 text-center">鲜货库</view>
  37. </view>
  38. </up-grid-item>
  39. <up-grid-item>
  40. <view class="pd2-10-0 d-flex flex-cln a-c j-c">
  41. <view class="w-109 h-109 bg-#fff radius-50% d-flex a-c j-c mb-10">
  42. <image class="w-72 h-72" src="@/static/images/plant/storage/nav_zjpk_icon.png" mode="widthFix" />
  43. </view>
  44. <view class="c-#333 f-s-28 text-center">中间品库</view>
  45. </view>
  46. </up-grid-item>
  47. <up-grid-item>
  48. <view class="pd2-10-0 d-flex flex-cln a-c j-c">
  49. <view class="w-109 h-109 bg-#fff radius-50% d-flex a-c j-c mb-10">
  50. <image class="w-72 h-72" src="@/static/images/plant/storage/nav_cpk_icon.png" mode="widthFix" />
  51. </view>
  52. <view class="c-#333 f-s-28 text-center">成品库</view>
  53. </view>
  54. </up-grid-item>
  55. </up-grid>
  56. </view>
  57. <view class="h-210"></view>
  58. </view>
  59. </up-popup>
  60. <view class="w-100%" style="position: fixed; bottom: 0; left: 0; z-index: 1100">
  61. <view class="p-rtv" style="height: 210rpx">
  62. <image class="w-100%" src="/static/images/plant/bottombg.png" mode="widthFix" style="position: absolute; bottom: 0; left: 0; z-index: -1" />
  63. <view class="d-flex h-140 w-100% j-sa" style="position: absolute; bottom: 0; left: 0">
  64. <view class="d-flex a-c flex1 j-sa">
  65. <view @click="showStorage = false;$u.route({ type: 'switchTab', url: '/pages/plant/base/index' })" class="c-#999 f-s-24 d-flex flex-cln j-c a-c">
  66. <image v-if="activeTab === 'base' && !showStorage" class="w-80 h-80" src="/static/images/plant/bottomBaseActive.png" mode="widthFix" />
  67. <image v-else class="w-80 h-80" src="/static/images/plant/bottomBase.png" mode="widthFix" />
  68. <view class="text-center" :class="activeTab === 'base' && !showStorage ? 'c-primary f-w-5' : ''">基地</view>
  69. </view>
  70. <view @click="showStorage = false;$u.route({ type: 'switchTab', url: '/pages/plant/port/index' })" class="c-#999 f-s-24 d-flex flex-cln j-c a-c">
  71. <image v-if="activeTab === 'planting' && !showStorage" class="w-80 h-80" src="/static/images/plant/bottomPlantingBreedingActive.png" mode="widthFix" />
  72. <image v-else class="w-80 h-80" src="/static/images/plant/bottomPlantingBreeding.png" mode="widthFix" />
  73. <view class="text-center" :class="activeTab === 'planting' && !showStorage ? 'c-primary f-w-5' : ''">种养殖</view>
  74. </view>
  75. </view>
  76. <view class="w-126 d-flex a-c j-c p-rtv" @click="showStorage = !showStorage">
  77. <image v-if="!showStorage" class="w-80 h-80" src="/static/images/plant/bottomWarehouse.png" mode="widthFix" style="position: absolute; top: -40rpx" />
  78. <image v-else class="w-80 h-80" src="/static/images/plant/bottomWarehouseActive.png" mode="widthFix" style="position: absolute; top: -40rpx" />
  79. </view>
  80. <view class="d-flex a-c flex1 j-sa">
  81. <view class="c-#999 f-s-24 d-flex flex-cln j-c a-c">
  82. <image v-if="activeTab === 'processing' && !showStorage" class="w-80 h-80" src="/static/images/plant/bottomProcessingPackagingActive.png" mode="widthFix" />
  83. <image v-else class="w-80 h-80" src="/static/images/plant/bottomProcessingPackaging.png" mode="widthFix" />
  84. <view class="text-center" :class="activeTab === 'processing' && !showStorage ? 'c-primary f-w-5' : ''">加工包装</view>
  85. </view>
  86. <view class="c-#999 f-s-24 d-flex flex-cln j-c a-c">
  87. <image v-if="activeTab === 'more' && !showStorage" class="w-80 h-80" src="/static/images/plant/bottomMoreActive.png" mode="widthFix" />
  88. <image v-else class="w-80 h-80" src="/static/images/plant/bottomMore.png" mode="widthFix" />
  89. <view class="text-center" :class="activeTab === 'more' && !showStorage ? 'c-primary f-w-5' : ''">更多</view>
  90. </view>
  91. </view>
  92. </view>
  93. </view>
  94. <view class="bg-#fff" :style="{ height: `${safeAreaBottom}px` }"></view>
  95. </view>
  96. </template>
  97. <script setup lang="ts">
  98. const showStorage = ref(false);
  99. defineProps<{
  100. activeTab?: string; // 当前活跃的tab标识符:'base' | 'planting' | 'warehouse' | 'processing' | 'more'
  101. }>();
  102. const windowInfo = uni.getWindowInfo();
  103. const safeAreaBottom = windowInfo.safeAreaInsets.bottom;
  104. </script>