From 772313f79294f87b99dc3de00961135fe1af57b9 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期六, 20 四月 2024 20:28:10 +0800
Subject: [PATCH] 更新效率

---
 src/views/login/components/passwordForm.vue |  154 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 94 insertions(+), 60 deletions(-)

diff --git a/src/views/login/components/passwordForm.vue b/src/views/login/components/passwordForm.vue
index db1b966..a028d51 100644
--- a/src/views/login/components/passwordForm.vue
+++ b/src/views/login/components/passwordForm.vue
@@ -1,32 +1,15 @@
 <template>
-	<el-form ref="loginForm" :model="form" :rules="rules" label-width="0" size="large" @keyup.enter="login">
+	<el-form ref="loginForm" :model="form" :rules="rules" label-width="0" size="large" @keyup.enter="login" class="login-form">
 		<el-form-item prop="user">
-			<el-input v-model="form.user" prefix-icon="el-icon-user" clearable :placeholder="$t('login.userPlaceholder')">
-				<template #append>
-					<el-select v-model="userType" style="width: 130px;">
-						<el-option :label="$t('login.admin')" value="admin"></el-option>
-						<el-option :label="$t('login.user')" value="user"></el-option>
-					</el-select>
-				</template>
+			<el-input v-model="form.user" prefix-icon="el-icon-user" clearable :placeholder="$t('login.userPlaceholder')" class="inputHeight">
 			</el-input>
 		</el-form-item>
 		<el-form-item prop="password">
-			<el-input v-model="form.password" prefix-icon="el-icon-lock" clearable show-password :placeholder="$t('login.PWPlaceholder')"></el-input>
-		</el-form-item>
-		<el-form-item style="margin-bottom: 10px;">
-				<el-col :span="12">
-					<el-checkbox :label="$t('login.rememberMe')" v-model="form.autologin"></el-checkbox>
-				</el-col>
-				<el-col :span="12" class="login-forgot">
-					<router-link to="/reset_password">{{ $t('login.forgetPassword') }}锛�</router-link>
-				</el-col>
+			<el-input v-model="form.password" prefix-icon="el-icon-lock" clearable show-password :placeholder="$t('login.PWPlaceholder')" class="inputHeight"></el-input>
 		</el-form-item>
 		<el-form-item>
-			<el-button type="primary" style="width: 100%;" :loading="islogin" round @click="login">{{ $t('login.signIn') }}</el-button>
+			<el-button type="primary" style="width: 100%;" :loading="islogin" @click="login">{{ $t('login.signIn') }}</el-button>
 		</el-form-item>
-		<div class="login-reg">
-			{{$t('login.noAccount')}} <router-link to="/user_register">{{$t('login.createAccount')}}</router-link>
-		</div>
 	</el-form>
 </template>
 
@@ -37,7 +20,7 @@
 				userType: 'admin',
 				form: {
 					user: "admin",
-					password: "admin",
+					password: "123456",
 					autologin: false
 				},
 				rules: {
@@ -63,65 +46,116 @@
 			}
 		},
 		mounted() {
-
+			//this.$HTTP.get('/api/blade-sync/outer-app-config/appStatus')
 		},
 		methods: {
 			async login(){
-
 				var validate = await this.$refs.loginForm.validate().catch(()=>{})
 				if(!validate){ return false }
-
 				this.islogin = true
 				var data = {
 					username: this.form.user,
-					password: this.$TOOL.crypto.MD5(this.form.password)
+					//password: this.$TOOL.crypto.MD5(this.form.password)
+					password: this.form.password,
+					tenantId: "000000",
+					grant_type: "password",
+					scope: "all"
 				}
-				//鑾峰彇token
-				var user = await this.$API.auth.token.post(data)
-				if(user.code == 200){
-					this.$TOOL.cookie.set("TOKEN", user.data.token, {
-						expires: this.form.autologin? 24*60*60 : 0
-					})
-					this.$TOOL.data.set("USER_INFO", user.data.userInfo)
-				}else{
-					this.islogin = false
-					this.$message.warning(user.message)
-					return false
-				}
+				await this.$HTTP.postJ("/api/blade-auth/oauth/token?" + this.$TOOL.qsStringify(data)).then(res=> {
+					if(res.user_id) {
+						//鑾峰彇token
+						this.$TOOL.cookie.set("TOKEN", res.access_token, {
+							expires: this.form.autologin? 24*60*60 : 0
+						})
+						res.userName = res.user_name;
+						res.role = ["SA", "admin", "Auditor"];
+						res.dashboard = "0";
+						res.userId =  "1";
+						this.$TOOL.data.set("USER_INFO", res);
+						this.islogin = false;
+					}else {
+						this.$message({
+				          showClose: true,
+				          message: res.error_description,
+				          type: 'error'
+				        });
+					}
+				})
 				//鑾峰彇鑿滃崟
-				var menu = null
-				if(this.form.user == 'admin'){
-					menu = await this.$API.system.menu.myMenus.get()
-				}else{
-					menu = await this.$API.demo.menu.get()
-				}
-				if(menu.code == 200){
-					if(menu.data.menu.length==0){
+				await this.$HTTP.get("/api/blade-system/menu/routes?" + this.$TOOL.qsStringify({"appCode": "CPS"})).then(res=> {
+					if(res.data.length==0){
 						this.islogin = false
 						this.$alert("褰撳墠鐢ㄦ埛鏃犱换浣曡彍鍗曟潈闄愶紝璇疯仈绯荤郴缁熺鐞嗗憳", "鏃犳潈闄愯闂�", {
 							type: 'error',
 							center: true
 						})
 						return false
-					}
-					this.$TOOL.data.set("MENU", menu.data.menu)
-					this.$TOOL.data.set("PERMISSIONS", menu.data.permissions)
-					this.$TOOL.data.set("DASHBOARDGRID", menu.data.dashboardGrid)
-				}else{
-					this.islogin = false
-					this.$message.warning(menu.message)
-					return false
-				}
+					} 
+					//寮�濮�
+					function addComponentToLastLevel(items) {  
+						return items.map((item) => {  
+							// 澶嶅埗褰撳墠椤癸紝閬垮厤鐩存帴淇敼鍘熷瀵硅薄  
+							const clonedItem = { ...item };  
+					
+							// 妫�鏌ュ綋鍓嶉」鏄惁鏈� children 灞炴��  
+							if (clonedItem.children) {  
+								// 閫掑綊澶勭悊 children  
+								clonedItem.children = addComponentToLastLevel(clonedItem.children);  
+							} else {  
+								// 濡傛灉娌℃湁 children 灞炴�э紝璇存槑鏄渶鍚庝竴绾э紝娣诲姞 component 瀵硅薄  
+								var len = clonedItem.path.length;
+								if(item.name == "浠诲姟璋冨害") {
+									//clonedItem.component = clonedItem.path;   //鏈塩omponent涓嶅彲浠ヤ娇鐢╥frame
+								}else {
+									clonedItem.component = clonedItem.path.substring(1,len); 
+								}
+							} 
+							if(item.name == "浠诲姟璋冨害") {
+								clonedItem.meta = {title: clonedItem.name,icon: "el-icon-takeaway-box", type: "iframe"}
+							}else {
+								clonedItem.meta = {title: clonedItem.name,icon: "el-icon-takeaway-box", type: "menu"}
+							}
+							return clonedItem;
+						});  
+					}   
+					var transformedArray = addComponentToLastLevel(res.data); 
+					//鑾峰彇澶氫釜宸ヤ綔鍙�
+					this.$HTTP.get("/api/blade-system/workbench/list?status=1").then(resp=> {
+						if(resp.data.length) {
+							//console.log(resp.data,resp.data[0].name,333);
+							resp.data.forEach((item,index)=> {
+								item.component = "home";
+								item.meta = {title: item.name, icon: 'el-icon-menu', affix: true};
+								item.path = "/dashboard";
+								item.parentId = item.id;
+							})
+							transformedArray[0].path = "/home";
+							transformedArray[0].children = resp.data;
+							var obj = {
+								dashboardGrid: ["welcome", "ver", "time", "progress", "echarts", "about"],
+								menu: transformedArray,
+								permissions: ["list.add", "list.edit", "list.delete", "user.add", "user.edit", "user.delete"]
+							}
+							this.$TOOL.data.set("MENU", obj.menu)
+							this.$TOOL.data.set("PERMISSIONS", obj.permissions)
+							this.$TOOL.data.set("DASHBOARDGRID", obj.dashboardGrid)
+							console.log(transformedArray,222)
 
-				this.$router.replace({
-					path: '/'
+							this.$router.replace({
+								path: '/'
+							})
+							this.$message.success("Login Success 鐧诲綍鎴愬姛")
+							this.islogin = false;
+						}
+					})
 				})
-				this.$message.success("Login Success 鐧诲綍鎴愬姛")
-				this.islogin = false
-			},
+				
+			}
 		}
 	}
 </script>
 
 <style>
+.login-form {margin: 0 auto;margin-top: 46px;width: 294px;}
+.inputHeight {height: 40px;line-height: 40px;}
 </style>

--
Gitblit v1.9.3