From deb83d55cd15cad208e6721cb90947c56bf3cab5 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期三, 17 四月 2024 00:40:27 +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