From 89a5fedfe041ebacb2d81ecae1023b206cd3f353 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期四, 24 四月 2025 09:10:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/main'

---
 eims-ui-mobile/src/pages/home/index.vue |  215 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 191 insertions(+), 24 deletions(-)

diff --git a/eims-ui-mobile/src/pages/home/index.vue b/eims-ui-mobile/src/pages/home/index.vue
index 2c10cbb..3351c06 100644
--- a/eims-ui-mobile/src/pages/home/index.vue
+++ b/eims-ui-mobile/src/pages/home/index.vue
@@ -3,37 +3,118 @@
 {
   layout: 'tabbar',
   style: {
-    navigationStyle: 'custom',
     navigationBarTitleText: '棣栭〉',
   },
 }
 </route>
 <template>
   <view
-    class="bg-white overflow-hidden pt-2 px-4"
-    :style="{ marginTop: safeAreaInsets?.top + 'px' }"
+    class="bg-base overflow-hidden"
+    :style="{
+      marginTop: safeAreaInsets?.top + 'px',
+    }"
   >
-    <view class="mt-12">
-      <image src="/static/logo.svg" alt="" class="w-28 h-28 block mx-auto" />
-    </view>
-    <view class="text-center text-4xl main-title-color mt-4">unibest</view>
-    <view class="text-center text-2xl mt-2 mb-8">鏈�濂界敤鐨� uniapp 寮�鍙戞ā鏉�</view>
+    <view class="bg-white h-[80rpx] px-2 flex items-center justify-between">
+      <view class="flex items-center" @click="handleUserInfo">
+        <wd-icon name="user" size="40rpx" class="icon-color-base"></wd-icon>
+        <text class="ml-1 text-color-base">寮犱笁</text>
+      </view>
 
-    <view class="text-justify max-w-100 m-auto text-4 indent mb-2">{{ description }}</view>
-    <view class="text-center mt-8">
-      褰撳墠骞冲彴鏄細
-      <text class="text-green-500">{{ PLATFORM.platform }}</text>
+      <view class="flex items-center">
+        <wd-icon name="notification" size="40rpx" class="icon-color-base mr-3"></wd-icon>
+        <wd-icon name="tips" size="40rpx" class="icon-color-base mr-3"></wd-icon>
+        <wd-icon name="app" size="40rpx" class="icon-color-base"></wd-icon>
+      </view>
     </view>
-    <view class="text-center mt-4">
-      妯℃澘鍒嗘敮鏄細
-      <text class="text-green-500">tabbar</text>
+
+    <view class="bg-white py-2 px-2">
+      <wd-img class="w-full h-[260rpx]" src="/static/images/pic4.jpeg" />
+    </view>
+    <view class="bg-noti flex flex-row">
+      <wd-notice-bar
+        text="杩欐槸涓�鏉℃秷鎭彁绀轰俊鎭紝杩欐槸涓�鏉℃秷鎭彁绀轰俊鎭紝杩欐槸涓�鏉℃秷鎭彁绀轰俊鎭�"
+        prefix="clock"
+        type="info"
+        :scrollable="false"
+        custom-class="flex-1  overflow-hidden"
+      />
+      <wd-button type="text" class="w-[120rpx]">鏌ョ湅</wd-button>
+    </view>
+
+    <view class="bg-white">
+      <wd-card type="rectangle">
+        <template #title>
+          <view class="flex items-center menu-title-box">
+            <view class="menu-indicator"></view>
+            <view class="ml-1 text-xs">鏁版嵁鎬昏</view>
+          </view>
+        </template>
+        <view class="flex flex-row justify-around">
+          <view class="flex flex-col justify-center">
+            <text class="text-lg text-center">0</text>
+            <text class="text-color-gray">璁惧鎬绘暟</text>
+          </view>
+          <view class="flex flex-col justify-center">
+            <text class="text-lg text-center">0</text>
+            <text class="text-color-gray">鏁呴殰璁惧鏁�</text>
+          </view>
+          <view class="flex flex-col justify-center">
+            <text class="text-lg text-center">0</text>
+            <text class="text-color-gray">鏈慨澶嶆晠闅�</text>
+          </view>
+        </view>
+      </wd-card>
+    </view>
+
+    <view class="bg-white mt-2">
+      <wd-card type="rectangle">
+        <template #title>
+          <view class="flex items-center menu-title-box">
+            <view class="menu-indicator"></view>
+            <view class="ml-1 text-xs">璁惧绠$悊</view>
+          </view>
+        </template>
+        <wd-grid :column="4">
+          <wd-grid-item
+            use-slot
+            class="flex justify-center items-center"
+            v-for="(item, index) in equMenu"
+            @click.stop="goItemPage(item.path)"
+          >
+            <image class="slot-img text-center" :src="item.icon" />
+            <text>{{ item.name }}</text>
+          </wd-grid-item>
+        </wd-grid>
+      </wd-card>
+    </view>
+
+    <view class="bg-white mt-2">
+      <wd-card type="rectangle">
+        <template #title>
+          <view class="flex items-center menu-title-box">
+            <view class="menu-indicator"></view>
+            <view class="ml-1 text-xs">璁惧鐐规</view>
+          </view>
+        </template>
+        <wd-grid :column="4">
+          <wd-grid-item
+            use-slot
+            class="flex justify-center items-center"
+            v-for="(item, index) in inspectMenu"
+            :key="item.id"
+            @click.stop="goItemPage(item.path)"
+          >
+            <image class="slot-img text-center" :src="item.icon" />
+            <text>{{ item.name }}</text>
+          </wd-grid-item>
+        </wd-grid>
+      </wd-card>
     </view>
   </view>
 </template>
 
 <script lang="ts" setup>
-import { TestEnum } from '@/typings'
-import PLATFORM from '@/utils/platform'
+import { getAllMenusApi } from '@/service/menu'
 
 defineOptions({
   name: 'Home',
@@ -41,19 +122,105 @@
 
 // 鑾峰彇灞忓箷杈圭晫鍒板畨鍏ㄥ尯鍩熻窛绂�
 const { safeAreaInsets } = uni.getSystemInfoSync()
-const author = ref('鑿查附')
-const description = ref(
-  'unibest 鏄竴涓泦鎴愪簡澶氱宸ュ叿鍜屾妧鏈殑 uniapp 寮�鍙戞ā鏉匡紝鐢� uniapp + Vue3 + Ts + Vite4 + UnoCss + UniUI + VSCode 鏋勫缓锛屾ā鏉垮叿鏈変唬鐮佹彁绀恒�佽嚜鍔ㄦ牸寮忓寲銆佺粺涓�閰嶇疆銆佷唬鐮佺墖娈电瓑鍔熻兘锛屽苟鍐呯疆浜嗚澶氬父鐢ㄧ殑鍩烘湰缁勪欢鍜屽熀鏈姛鑳斤紝璁╀綘缂栧啓 uniapp 鎷ユ湁 best 浣撻獙銆�',
-)
-// 娴嬭瘯 uni API 鑷姩寮曞叆
+
+const getAllMenus = async () => {
+  const menuList = await getAllMenusApi()
+  console.error(menuList)
+}
+
+const goItemPage = (path: string) => {
+  const url = `/${path}`
+  uni.navigateTo({
+    url,
+  })
+}
+
 onLoad(() => {
-  console.log(author)
-  console.log(TestEnum.A)
+  // getAllMenus()
 })
+
+const equMenu = reactive([
+  {
+    id: 1,
+    name: '璁惧绠$悊',
+    icon: '/static/menu/menu1.png',
+    path: 'pages/equ/equ-list',
+  }
+])
+
+const inspectMenu = reactive([
+  /*  {
+    id: 0,
+    name: '璁惧鐐规',
+    icon: '/static/menu/menu0.png',
+    path: 'pages/inspect/insp-add',
+  }, */
+  {
+    id: 1,
+    name: '鐐规姹囨��',
+    icon: '/static/menu/menu2.png',
+    path: 'pages/inspect/insp-st',
+  },
+  {
+    id: 2,
+    name: '淇濆吇姹囨��',
+    icon: '/static/menu/menu1.png',
+    path: 'pages/maint/maint-st',
+  },
+  {
+    id: 3,
+    name: '鐐规璁板綍',
+    icon: '/static/menu/menu3.png',
+    path: 'pages/inspect/insp-record',
+  },
+  {
+    id: 4,
+    name: '鐐规璁″垝',
+    icon: '/static/menu/menu4.png',
+    path: 'pages/inspect/insp-add',
+  },
+])
+
+function handleUserInfo() {
+  getAllMenus()
+}
 </script>
 
 <style lang="scss" scoped>
 .main-title-color {
   color: $uni-color-primary;
 }
+
+.bg-noti {
+  background: #f4f9ff;
+}
+
+:deep(.wd-card) {
+  margin-bottom: 0;
+}
+
+:deep(.wd-card__footer) {
+  padding: 0 !important;
+}
+
+:deep(.wd-card__footer)::after {
+  height: 0 !important;
+}
+
+.menu-title-box {
+  height: 30rpx;
+}
+
+.menu-indicator {
+  width: 6rpx;
+  height: 24rpx;
+  border-radius: 10rpx;
+  background-color: $uni-color-primary;
+}
+
+.slot-img {
+  width: 72rpx;
+  height: 72rpx;
+  margin-left: 4rpx;
+}
 </style>

--
Gitblit v1.9.3