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 |  373 +++++++++++++++++++++++++++++------------------------
 1 files changed, 204 insertions(+), 169 deletions(-)

diff --git a/src/pages/user/index.vue b/src/pages/user/index.vue
index b98003c..5a80afb 100644
--- a/src/pages/user/index.vue
+++ b/src/pages/user/index.vue
@@ -1,196 +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-20rpx">
-				<u-avatar :src="userStore?.userInfo?.avatar" size="70" />
-			</view>
-			<view class="flex-1">
-				<view class="userName">{{ userStore?.userInfo?.nick_name }}</view>
-				<view class="departs">
-					<img src="/src/static/images/user/mobile.svg" alt="" />
-					<span>中图智飞(江西省)</span>
-				</view>
-			</view>
-			<view class="rightLogo">
-				<img src="/src/static/images/user/logo2.svg" alt="" />
-			</view>
-		</view>
-		<view class="personalInformation">
-			<div class="message">
-				<div class="messagebox">个人信息</div>
-				<div class="editInfo" @click="handelEdit(1)">点击编辑
-				<img src="/src/static/images/user/rightBtn.svg" alt="" /></div>
-			</div>
-			<div class="passwordBox">
-				<div class="messagebox">修改密码</div>
-				<div class="editInfo" @click="handelEdit(2)">点击编辑 <img src="/src/static/images/user/rightBtn.svg" alt="" /></div>
-			</div>
-		</view>
+  <view class="page-wrap">
+    <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="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="mt-20rpx">
-			<div class="goOutStyle" @click="logOut">退出登录</div>
-		</view>
-	</view>
+      <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 userStore = useUserStore();
-	// console.log('userStore', userStore.userInfo);
 
-	// 复制
-	const toCopy = async () => {
-		await setClipboardData({
-			data: "1234567890"
-		});
-		const data = await getClipboardData();
-	};
+const rightImage = getAssetsImage("/images/user/rightBtn.png");
+const logoImage = getAssetsImage("/images/user/logo1.png");
 
-	function logOut() {
-		userStore.setUserInfo(null)
-		uni.redirectTo({
-			url: '/pages/login/index'
-		})
-	}
+const userStore = useUserStore();
+const user = ref("");
+const getUserInfoData = () => {
+  getUserInfo().then((res) => {
+    user.value = res.data.data;
+  });
+};
 
-	function getDeviceRegion() {
-		getDeviceRegionApi().then(res => {
-			// console.log(res.data.data, '用户设备')
-		})
-	}
-	const handelEdit=(val)=>{
+function logOut() {
+  userStore.setUserInfo(null);
+  uni.reLaunch({
+    url: "/pages/login/index",
+  });
+}
 
-		if(val === 1){
-			uni.navigateTo({
-			  url: `/subPackages/userDetail/infos/index`
-			});
-		}else {
-			uni.navigateTo({
-			  url: `/subPackages/userDetail/password/index`
-			});
-		}
+function getDeviceRegion() {
+  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: 298px;
-		background: url('/src/static/images/user/userBg.svg') no-repeat center;
-		background-size: 100% 100%;
-	}
+.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;
+}
 
-	.userName {
-		font-family: Source Han Sans CN, Source Han Sans CN;
-		font-weight: 500;
-		font-size: 18px;
-		color: #000000;
+.departs {
+  display: flex;
+  align-items: center;
+  margin-top: 22rpx;
 
-	}
+  image {
+    width: 28rpx;
+    height: 28rpx;
+  }
 
-	.departs {
-		display: flex;
-		align-items: center;
-		margin-top: 11px;
+  span {
+    font-family: "Source Han Sans CN";
+    font-weight: 400;
+    font-size: 28rpx;
+    color: rgba(0, 0, 0, 0.6);
+    margin-left: 6rpx;
+  }
+}
 
-		span {
-			font-family: Source Han Sans CN, Source Han Sans CN;
-			font-weight: 400;
-			font-size: 14px;
-			color: rgba(0, 0, 0, 0.6);
-			margin-left: 3px;
-		}
-	}
+.rightLogo {
+  width: 200rpx;
+  height: 80rpx;
 
-	.rightLogo {
-		width: 100px;
-		height: 40px;
-	}
+  image {
+    width: 100%;
+    height: 100%;
+  }
+}
 
-	.goOutStyle {
-		width: 295px;
-		height: 38px;
-		background: #1D6FE9;
-		border-radius: 20px 20px 20px 20px;
-		font-family: Source Han Sans CN, Source Han Sans CN;
-		font-weight: 400;
-		font-size: 14px;
-		color: #FFFFFF;
-		text-align: center;
-		line-height: 38px;
-		margin: auto;
-		margin-top: 57px;
-	}
+.bottomLogo {
+  position: absolute;
+  bottom: 50rpx;
+  left: 0;
+  right: 0;
+  margin: 0 auto;
+  text-align: center;
 
-	.personalInformation {
-		display: flex;
-		justify-content: space-between;
-		padding: 0 12px;
+  image {
+    width: 128rpx;
+    height: 52rpx;
+  }
+}
 
-		.message,
-		.passwordBox {
-			width: 170px;
-			height: 80px;
-			.messagebox{
-				padding: 10px 12px;
-				font-family: Source Han Sans CN, Source Han Sans CN;
-				font-weight: 500;
-				font-size: 14px;
-				color: #000000;
-			}
-			.editInfo {
-				padding: 10px 12px;
-				color: rgba(0, 0, 0, 0.5);
-				font-family: Source Han Sans CN, Source Han Sans CN;
-				font-weight: 400;
-				font-size: 12px;
-				display: flex;
-				align-items: center;
-				img{
-					width: 14px;
-					height: 14px;
-				}
-			}
-		}
+.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;
+}
 
-		.message {
-			background: url('/src/static/images/user/info.svg') no-repeat center;
-			background-size: 100% 100%;
+.personalInformation {
+  display: flex;
+  justify-content: space-between;
+  padding: 0 24rpx;
 
-		}
+  .message,
+  .passwordBox {
+    width: 340rpx;
+    height: 160rpx;
 
-		.passwordBox {
-			background: url('/src/static/images/user/password.svg') no-repeat center;
-			background-size: 100% 100%;
+    .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