From 44dd9c4eb8a2489c63a5eb53fd4254bbb3510e95 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 18 Jun 2026 09:14:57 +0800
Subject: [PATCH] Merge branch 'feature/v9.0/9.0.4'

---
 src/pages/user/index.vue |  251 +++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 207 insertions(+), 44 deletions(-)

diff --git a/src/pages/user/index.vue b/src/pages/user/index.vue
index 1210542..5a80afb 100644
--- a/src/pages/user/index.vue
+++ b/src/pages/user/index.vue
@@ -1,68 +1,231 @@
 <!-- 我的 -->
 <template>
   <view class="page-wrap">
-    <u-navbar title="" placeholder left-icon="" right-icon="camera-fill"/>
-    <view class="flex items-center pb-30rpx pl-30rpx pr-20rpx">
-      <view class="mr-10rpx">
-        <u-avatar src="/static/images/logo.png" size="70"/>
-      </view>
-      <view class="flex-1">
-        <view class="pb-20rpx text-36rpx">{{ userStore?.userInfo?.nick_name }}</view>
-        <view class="u-tips-color text-28rpx" @click="toCopy">
-          ID:{{ userStore?.userInfo?.user_id }}
+    <view class="userBox">
+      <view class="flex items-center pb-30rpx pl-30rpx pr-20rpx">
+        <view class="mr-20rpx">
+          <u-avatar :src="user.avatar" size="70" />
+        </view>
+        <view class="flex-1">
+          <view class="userName">{{ userStore?.userInfo?.nick_name }}</view>
+          <view class="departs">
+            <image
+              src="https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/mobile.png"
+              alt=""
+            />
+            <span>{{ user.deptName }}</span>
+          </view>
+        </view>
+        <view class="rightLogo">
+          <image
+            src="https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/logo2.png"
+            alt=""
+          />
         </view>
       </view>
-      <view class="ml-10rpx p-10rpx">
-        <u-icon name="scan" color="#969799"/>
+      <view class="personalInformation">
+        <div class="message">
+          <div class="messagebox">个人信息</div>
+          <div class="editInfo" @click="handelEdit(1)">
+            点击编辑
+            <image :src="rightImage" alt="" />
+          </div>
+        </div>
+        <div class="passwordBox">
+          <div class="messagebox">修改密码</div>
+          <div class="editInfo" @click="handelEdit(2)">
+            点击编辑
+            <image :src="rightImage" alt="" />
+          </div>
+        </div>
       </view>
-      <view class="ml-10rpx p-10rpx">
-        <u-icon name="arrow-right" color="#969799"/>
-      </view>
-    </view>
 
-    <view class="mt-20rpx">
-      <u-cell-group>
-        <u-cell icon="setting" title="退出登录" is-link @click="logOut"/>
-      </u-cell-group>
+      <view class="mt-20rpx">
+        <div class="goOutStyle" @click="logOut">退出登录</div>
+      </view>
+      <div class="bottomLogo">
+        <image :src="logoImage" alt="" />
+      </div>
     </view>
   </view>
 </template>
 
 <script setup>
-import {useClipboard} from "@/hooks";
-import {useUserStore} from "@/store/index.js";
-import {onShow} from "@dcloudio/uni-app";
-import {getDeviceRegionApi} from "@/api/map.js";
+import { getAssetsImage } from "@/utils/index.js";
+import { getUserInfo } from "@/api/user/index.js";
+import { useUserStore } from "@/store/index.js";
+import { onShow } from "@dcloudio/uni-app";
+import { getDeviceRegionApi } from "@/api/map.js";
 
-const {setClipboardData, getClipboardData} = useClipboard();
+
+const rightImage = getAssetsImage("/images/user/rightBtn.png");
+const logoImage = getAssetsImage("/images/user/logo1.png");
+
 const userStore = useUserStore();
-// 复制
-const toCopy = async () => {
-  await setClipboardData({data: "1234567890"});
-  const data = await getClipboardData();
+const user = ref("");
+const getUserInfoData = () => {
+  getUserInfo().then((res) => {
+    user.value = res.data.data;
+  });
 };
 
 function logOut() {
-  userStore.setUserInfo(null)
-  uni.redirectTo({
-    url: '/pages/login/index'
-  })
+  userStore.setUserInfo(null);
+  uni.reLaunch({
+    url: "/pages/login/index",
+  });
 }
 
 function getDeviceRegion() {
-  getDeviceRegionApi().then(res =>{
-    console.log(res.data.data,'用户设备')
-  })
+  getDeviceRegionApi().then((res) => {});
 }
+const handelEdit = (val) => {
+  if (val === 1) {
+    uni.navigateTo({
+      url: `/subPackages/userDetail/infos/index`,
+    });
+  } else {
+    uni.navigateTo({
+      url: `/subPackages/userDetail/password/index`,
+    });
+  }
+};
+onShow(() => {
+  getUserInfoData();
 
-// 登录鉴权,微信小程序端点击tabbar的底层逻辑不触发uni.switchTab,需要在页面onShow生命周期中校验权限
-onShow(async () => {
-  getDeviceRegion()
-  // window.addEventListener('message', (event) => {
-  //   console.log('message')
-  // })
-  // setInterval(() => {
-    // sWebViewRef.value.evalJs(`x_sun('${test.value}')`)
-  // }, 2000)
+  // #ifndef MP-WEIXIN
+  uni.setTabBarItem({
+    index: 2, // Tab 的索引(从0开始)
+    visible: false,
+  });
+  uni.setTabBarItem({
+    index: 3, // Tab
+    visible: true,
+  });
+  // #endif
 });
 </script>
+<style scoped lang="scss">
+.page-wrap {
+  width: 100%;
+  height: 100%;
+}
+.userBox {
+  padding-top: 88rpx;
+}
+/* #ifdef MP-WEIXIN */
+.userBox {
+	padding-top: 180rpx;
+}
+/* #endif */
+.userName {
+  font-weight: 700;
+  font-size: 36rpx;
+  color: #000000;
+}
+
+.departs {
+  display: flex;
+  align-items: center;
+  margin-top: 22rpx;
+
+  image {
+    width: 28rpx;
+    height: 28rpx;
+  }
+
+  span {
+    font-family: "Source Han Sans CN";
+    font-weight: 400;
+    font-size: 28rpx;
+    color: rgba(0, 0, 0, 0.6);
+    margin-left: 6rpx;
+  }
+}
+
+.rightLogo {
+  width: 200rpx;
+  height: 80rpx;
+
+  image {
+    width: 100%;
+    height: 100%;
+  }
+}
+
+.bottomLogo {
+  position: absolute;
+  bottom: 50rpx;
+  left: 0;
+  right: 0;
+  margin: 0 auto;
+  text-align: center;
+
+  image {
+    width: 128rpx;
+    height: 52rpx;
+  }
+}
+
+.goOutStyle {
+  width: 590rpx;
+  height: 76rpx;
+  background: #1d6fe9;
+  border-radius: 40rpx;
+  font-family: "Source Han Sans CN";
+  font-weight: 400;
+  font-size: 28rpx;
+  color: #ffffff;
+  text-align: center;
+  line-height: 76rpx;
+  margin: auto;
+  margin-top: 114rpx;
+}
+
+.personalInformation {
+  display: flex;
+  justify-content: space-between;
+  padding: 0 24rpx;
+
+  .message,
+  .passwordBox {
+    width: 340rpx;
+    height: 160rpx;
+
+    .messagebox {
+      padding: 20rpx 24rpx;
+      font-family: "Source Han Sans CN";
+      font-weight: 500;
+      font-size: 28rpx;
+      color: #000000;
+    }
+
+    .editInfo {
+      padding: 20rpx 24rpx;
+      color: rgba(0, 0, 0, 0.5);
+      font-family: "Source Han Sans CN";
+      font-weight: 400;
+      font-size: 24rpx;
+      display: flex;
+      align-items: center;
+
+      image {
+        width: 28rpx;
+        height: 28rpx;
+      }
+    }
+  }
+
+  .message {
+    background: url(https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/info.png)
+      no-repeat center;
+    background-size: 100% 100%;
+  }
+
+  .passwordBox {
+    background: url(https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/password.png)
+      no-repeat center;
+    background-size: 100% 100%;
+  }
+}
+</style>

--
Gitblit v1.9.3