From 3830233baf564fe39d5887ad5fd02207aba91f34 Mon Sep 17 00:00:00 2001
From: lzhe <181968431@qq.com>
Date: 星期日, 14 四月 2024 23:45:58 +0800
Subject: [PATCH] 1
---
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