Browse Source

feat(contacts): 根据unitId获取通讯录索引列表
feat(mine、personal_message): 渲染个人信息数据

wangpx 1 year ago
parent
commit
fa24869b47
10 changed files with 128 additions and 82 deletions
  1. 0 1
      App.vue
  2. 14 1
      api/contacts.js
  3. 18 2
      api/login.js
  4. 4 2
      api/mine/checkIn.js
  5. 3 2
      pages/contacts/index.vue
  6. 1 0
      pages/login.vue
  7. 6 23
      pages/mine/index.vue
  8. 25 25
      pages/mine/personal_message/personal_message.vue
  9. 45 16
      store/user.js
  10. 12 10
      utils/request.js

+ 0 - 1
App.vue

@@ -22,7 +22,6 @@
 			    this.checkLogin()
 			  },
       checkLogin() {
-				console.log('!getUserInfo()', !getUserInfo());
         if (!getUserInfo()) {
           $tab.reLaunch('/pages/login')
         } else {

+ 14 - 1
api/contacts.js

@@ -6,11 +6,24 @@ export function getContactAllUser(unitId) {
 			// isToken: false,
 		// 	Accept: 'application/json'
 		// ],
-		'data': {
+    method: 'post',
+		data: {
 			'serviceId': 'eu_2015V01loadAllUser',
 			'params': {
 				"groupId": unitId
 			}
 		}
 	})
+}
+
+export function getUserInfo(useId) {
+	return request({
+    method: 'post',
+		data: {
+			'serviceId': 'eu_2013V01loadMe',
+			'params': {
+				"staffId": useId
+			}
+		}
+	})
 }

+ 18 - 2
api/login.js

@@ -1,8 +1,10 @@
 import request from '@/utils/request.js'
 
+// 登录
 export function login(username, password) {
 	return request({
-		'data': {
+    method: 'post',
+		data: {
 			'serviceId': 'eu_2013V01login',
 			'params': {
         "userName": username,
@@ -11,10 +13,24 @@ export function login(username, password) {
 		}
 	})
 }
+// 获取用户信息
+export function getInfo(useId) {
+	return request({
+    method: 'post',
+		data: {
+			'serviceId': 'eu_2013V01loadMe',
+			'params': {
+        "staffId": useId
+			}
+		}
+	})
+}
 
+// 登出
 export function logout() {
 	// return request({
-	// 	'data': {
+    // method: 'post',
+	// 	data: {
 	// 		'serviceId': 'eu_2013V01login',
 	// 		'params': {
  //        "userName": username,

+ 4 - 2
api/mine/checkIn.js

@@ -2,7 +2,8 @@ import request from '@/utils/request.js'
 
 export function CheckAttendance(params) {
 	return request({
-		'data': {
+    method: 'post',
+		data: {
 			'serviceId': 'hr_2018V01CheckAttendance',
 			'params': params
 		}
@@ -11,7 +12,8 @@ export function CheckAttendance(params) {
 
 export function getMyTotalCount(params) {
 	return request({
-		'data': {
+    method: 'post',
+		data: {
 			'serviceId': 'hr_2015V01getMyTotalCount',
 			'params': params
 		}

+ 3 - 2
pages/contacts/index.vue

@@ -45,10 +45,11 @@
 	import headImg from "@/static/images/mine/headImg.jpg";
 	import $tab from '@/plugins/tab.js'
 	import { getContactAllUser } from '@/api/contacts.js'
+	import { useUserStore } from '@/store/user.js'
+	const userStore = useUserStore()
 	onMounted(() => {
-		const unitId = '47517153919893'
 		// 获取 通讯录 索引列表
-		getContactAllUser(unitId).then(res => {
+		getContactAllUser(userStore.user.unitId).then(res => {
 			getContactList(res.returnParams)
 		})
 	})

+ 1 - 0
pages/login.vue

@@ -48,6 +48,7 @@
 		}
 	}
 	function loginSuccess() {
+		userStore.GetInfo()
 		$tab.reLaunch('/pages/message/index')
 	}
 </script>

+ 6 - 23
pages/mine/index.vue

@@ -11,7 +11,7 @@
 						<text>姓名: {{ userInfo.name}}</text>
 					</view>
 					<view>
-						<text>ID: {{ userInfo.id }}</text>
+						<text>ID: {{ userInfo.useId }}</text>
 					</view>
 					<!-- 部门切换框 -->
 					<view class="uni-list-cell">
@@ -25,7 +25,7 @@
 						</view>
 					</view>
 					<view>
-						<text> 职务: {{ userInfo.department[index].position }}</text>
+						<text> 职务: {{ userInfo.positionName }}</text>
 					</view>
 
 				</view>
@@ -79,28 +79,11 @@
 	import $tab from "@/plugins/tab.js"
 	import { useUserStore } from '@/store/user.js'
 	const userStore = useUserStore()
-	// const userInfo = ref({})
+	const userInfo = ref({})
 	onMounted(() => {
-		console.log('userStore', userStore.user);
+		userInfo.value = userStore.user
+		// console.log('userStore', userStore.user);
 	})
-	// 用户信息的响应式对象
-	const userInfo = reactive({
-		id: '123321',
-		name: '张三',
-		department: [{
-				text: "研发部",
-				position: '软件开发工程师'
-			},
-			{
-				text: "业务部",
-				position: '销售经理'
-			},
-			{
-				text: '法务部',
-				position: '法律顾问'
-			}
-		],
-	});
 	// 部门数组
 	const array = ref(['研发部', '业务部', '法务部']);
 	const index = ref(0);
@@ -112,7 +95,7 @@
 
 	// 查看个人信息的函数
 	function lookMsg() {
-		$tab.navigateTo('/pages/mine/personal_message/personal_message?id=' + userInfo.id + '&name=' + userInfo.name);
+		$tab.navigateTo('/pages/mine/personal_message/personal_message?id=' + userInfo.useId + '&name=' + userInfo.name);
 	};
 
 	// 编辑资料的函数

+ 25 - 25
pages/mine/personal_message/personal_message.vue

@@ -17,7 +17,7 @@
 					<uni-icons type="phone" size="20"></uni-icons>
 					<text>手机</text>
 				</view>
-				<text class="lastText">{{ userInfo.phone || '暂无' }}</text>
+				<text class="lastText">{{ userInfo.desktop_phone || '暂无' }}</text>
 			</view>
 			<view class="info-item">
 				<view>
@@ -35,7 +35,7 @@
 					<uni-icons type="person" size="20"></uni-icons>
 					<text>性别</text>
 				</view>
-				<text class="lastText">{{ userInfo.gender || '暂无' }}</text>
+				<text class="lastText">{{ userInfo.sex || '暂无' }}</text>
 			</view>
 			<view class="info-item">
 				<view>
@@ -51,40 +51,40 @@
 <script setup>
 	import { ref } from 'vue';
 	import headImg from "@/static/images/mine/headImg.jpg";
-	import {
-		onLoad
-	} from '@dcloudio/uni-app'
+	import { onLoad } from '@dcloudio/uni-app'
+	import { useUserStore } from '@/store/user.js'
+	const userStore = useUserStore()
+	const userInfo = userStore.user
 	// 监听页面加载
 	onLoad((options) => {
 		// 获取传入的标题参数
-		const name = options.name;
-		const id = options.id;
-		console.log('id', id);
+		const name = userInfo.name;
+		const useId = userInfo.useId;
+		console.log('useId', useId);
 		if (name) {
 			// 设置导航栏标题
 			uni.setNavigationBarTitle({
 				title: name + "的信息"
 			});
-		userInfo.value.name = name
 		}
 	})
 	// 定义个人信息数据
-	const userInfo = ref({
-		name: "张三",
-		department: [{
-				departmentName: "研发部",
-				position: '软件开发工程师'
-			},
-			{
-				departmentName: "业务部",
-				position: '销售经理'
-			},
-		],
-		phone: "13579543684",
-		email: "",
-		gender: "男",
-		birthday: "2000-01-10"
-	});
+	// const userInfo = ref({
+	// 	name: "张三",
+	// 	department: [{
+	// 			departmentName: "研发部",
+	// 			position: '软件开发工程师'
+	// 		},
+	// 		{
+	// 			departmentName: "业务部",
+	// 			position: '销售经理'
+	// 		},
+	// 	],
+	// 	phone: "13579543684",
+	// 	email: "",
+	// 	gender: "男",
+	// 	birthday: "2000-01-10"
+	// });
 </script>
 
 <style lang="scss" scoped>

+ 45 - 16
store/user.js

@@ -1,11 +1,21 @@
-import { defineStore } from 'pinia'
-import { ref } from 'vue'
-import { login, logout } from '@/api/login.js'
-import { getUserInfo } from '@/utils/auth'
+import {
+	defineStore
+} from 'pinia'
+import {
+	ref
+} from 'vue'
+import {
+	login,
+	getInfo,
+	logout
+} from '@/api/login.js'
+import {
+	getUserInfo
+} from '@/utils/auth'
 
 export const useUserStore = defineStore('user', () => {
-	const user = ref(getUserInfo())
-	// user.value = getUserInfo()
+	const user = ref(getUserInfo()) // 用户信息
+	const useId = ref(0) // staffId
 	// 登录方法
 	function Login(userInfo) {
 		const username = userInfo.username
@@ -13,9 +23,7 @@ export const useUserStore = defineStore('user', () => {
 		return new Promise((resolve, reject) => {
 			login(username.trim(), password)
 				.then(res => {
-					uni.setStorageSync('userInfo', res.returnParams)
-					user.value = res.returnParams // 抽离进 GetInfo中
-					// 可以在这里设置 token 或用户信息
+					useId.value = res.returnParams.useId // 设置staffId
 					// setToken(res.token)
 					resolve(res)
 				})
@@ -24,17 +32,38 @@ export const useUserStore = defineStore('user', () => {
 				})
 		})
 	}
+
+	function GetInfo(index) {
+		const roleIndex = index || 0
+		return new Promise((resolve, reject) => {
+			getInfo(useId.value).then(res => {
+					// 保存 用户信息
+					uni.setStorageSync('userInfo', res.returnParams[roleIndex])
+					user.value = res.returnParams[roleIndex]
+					resolve(res)
+				})
+				.catch(error => {
+					reject(error)
+				})
+		})
+	}
+
 	function LogOut() {
 		return new Promise((resolve, reject) => {
 			// logout().then(() => {
-				user.value = {}
-				uni.clearStorageSync()
-				resolve()
-			}).catch(error => {
-				reject(error)
-			})
+			user.value = {}
+			uni.clearStorageSync()
+			resolve()
+		}).catch(error => {
+			reject(error)
+		})
 		// })
 	}
 
-	return { user, Login, LogOut }
+	return {
+		user,
+		Login,
+		GetInfo,
+		LogOut
+	}
 })

+ 12 - 10
utils/request.js

@@ -9,11 +9,11 @@ const baseUrl = config.baseUrl
 
 const request = config => {
   // 是否需要设置 token
-  const isToken = (config.headers || {}).isToken === false
+  // const isToken = (config.headers || {}).isToken === false
   config.header = config.header || {}
-  if (getToken() && !isToken) {
-    config.header['Authorization'] = 'Bearer ' + getToken()
-  }
+  // if (getToken() && !isToken) {
+  //   config.header['Authorization'] = 'Bearer ' + getToken()
+  // }
   // get请求映射params参数
   if (config.params) {
     let url = config.url + '?' + tansParams(config.params)
@@ -30,14 +30,16 @@ const request = config => {
         dataType: 'json'
       }).then(response => {
         // let [error, res] = response
-        let { statusCode, data } = response
-        // if (data.returnCode == 0) {
-        //   toast('后端接口连接异常')
-        //   reject('后端接口连接异常')
-        //   return
-        // }
+        const { statusCode, data } = response
+				const returnCode = data.returnCode
         const code = statusCode || 200
         const msg = errorCode[code] || data.returnMsg || errorCode['default']
+				console.log('response', response);
+				if (returnCode == -201) {
+				  toast(msg)
+				  reject(returnCode)
+				  return
+				}
         if (code === 401) {
           showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => {
             // if (res.confirm) {