denny vor 3 Jahren
Ursprung
Commit
b62319f187

+ 7 - 3
VinnoManagementSystem/src/config/route.js

@@ -139,18 +139,22 @@ const routes = [
 ]
 
 export default {
-    getRouteList: function (roles) {
+    getRouteList: function (selectedRoutes,roles) {
+		if (!selectedRoutes)
+		{
+			selectedRoutes = routes;
+		}
 		if (roles)
         {
             if (roles.length === 1 && roles[0] === 'admin')
             {
-                return routes;
+                return selectedRoutes;
             }
             else
             {
                 var menu = [];
                 //过滤
-                routes.forEach(route => {
+                selectedRoutes.forEach(route => {
                     const tmp = { ...route }
                     if (this.hasPermission(roles, tmp)) {
                         if (tmp.children) {

+ 18 - 5
VinnoManagementSystem/src/layout/components/userbar.vue

@@ -76,9 +76,9 @@
 			</div>
 			<template #dropdown>
 				<el-dropdown-menu>
-					<el-dropdown-item command="uc">个人设置</el-dropdown-item>
-					<!-- <el-dropdown-item command="clearCache">清除缓存</el-dropdown-item> -->
-					<el-dropdown-item divided command="outLogin">退出登录</el-dropdown-item>
+					<el-dropdown-item command="uc">{{ $t('user.personSetting') }}</el-dropdown-item>
+					<el-dropdown-item command="modifyPwd">{{ $t('user.modifyPwd') }}</el-dropdown-item>
+					<el-dropdown-item divided command="outLogin">{{ $t('user.loginOut') }}</el-dropdown-item>
 				</el-dropdown-menu>
 			</template>
 		</el-dropdown>
@@ -140,6 +140,7 @@
 			}
 		},
 		methods: {
+
 			//个人信息
 			handleUser(command) {
 				if(command == "uc"){
@@ -148,6 +149,9 @@
 				if(command == "cmd"){
 					this.$router.push({path: '/cmd'});
 				}
+				if(command == "modifyPwd"){
+					//修改密码
+				}
 				if(command == "clearCache"){
 					this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?','提示', {
 						type: 'info',
@@ -164,14 +168,23 @@
 					})
 				}
 				if(command == "outLogin"){
-					this.$confirm('确认是否退出当前用户?','提示', {
+					this.$confirm(this.$t('dialogBox.confirmWarningText'),this.$t('dialogBox.confirmWarningTitle'), {
 						type: 'warning',
-						confirmButtonText: '退出',
+						confirmButtonText: this.$t('dialogBox.confirmWarningButtonText'),
+						cancelButtonText: this.$t('dialogBox.cancelButtonText'),
 						confirmButtonClass: 'el-button--danger'
 					}).then(() => {
 						this.$router.replace({path: '/login'});
+						// this.$message({
+						// 	type: 'success',
+						// 	message: '删除成功!'
+						// });
 					}).catch(() => {
 						//取消退出
+						// this.$message({
+						// 	type: 'info',
+						// 	message: '已取消删除'
+						// });
 					})
 				}
 			},

+ 9 - 9
VinnoManagementSystem/src/layout/index.vue

@@ -53,11 +53,11 @@
 
 	<div class="main-maximize-exit" @click="exitMaximize"><el-icon><el-icon-close /></el-icon></div>
 
-	<div class="layout-setting" @click="openSetting"><el-icon><el-icon-brush-filled /></el-icon></div>
+	<!-- <div class="layout-setting" @click="openSetting"><el-icon><el-icon-brush-filled /></el-icon></div> -->
 
-	<el-drawer title="布局实时演示" v-model="settingDialog" :size="400" append-to-body destroy-on-close>
+	<!-- <el-drawer title="布局实时演示" v-model="settingDialog" :size="400" append-to-body destroy-on-close>
 		<setting @fatherMethod="reloadMenu"></setting>
-	</el-drawer>
+	</el-drawer> -->
 </template>
 
 <script>
@@ -66,7 +66,7 @@
 	import Tags from './components/tags.vue';
 	import NavMenu from './components/NavMenu.vue';
 	import userbar from './components/userbar.vue';
-	import setting from './components/setting.vue';
+	//import setting from './components/setting.vue';
 	import iframeView from './components/iframeView.vue';
     import { $t } from '@/locales'
 
@@ -78,12 +78,12 @@
 			Tags,
 			NavMenu,
 			userbar,
-			setting,
+			//setting,
 			iframeView
 		},
 		data() {
 			return {
-				settingDialog: false,
+				//settingDialog: false,
 				menu: [],
 				nextMenu: [],
 				pmenu: {},
@@ -134,9 +134,9 @@
 				this.pmenu.meta.title = $t('menu.' + this.pmenu.name);
 				this.nextMenu = this.filterUrl(this.pmenu.children);
 			},
-			openSetting(){
-				this.settingDialog = true;
-			},
+			// openSetting(){
+			// 	this.settingDialog = true;
+			// },
 			onLayoutResize(){
 				this.$store.commit("SET_ismobile", document.body.clientWidth < 992)
 			},

+ 12 - 2
VinnoManagementSystem/src/locales/lang/en.js

@@ -16,7 +16,8 @@ export default {
 		loginError: 'Login Fail',
 		loadingMenuError: 'Read Menu Fail',
 		languageEN: 'English',
-		languageCN: 'Simplified Chinese'
+		languageCN: 'Simplified Chinese',		
+		loginResult: "Login Success" 
 	},
 	user: {
 		dynamic: 'Dynamic',
@@ -25,7 +26,16 @@ export default {
 		nightmode: 'night mode',
 		nightmode_msg: 'Suitable for low light environment,The current night mode is beta',
 		language: 'language',
-		language_msg: 'Translation in progress,Temporarily translated the text of this view',
+		language_msg: 'Translation in progress,Temporarily translated the text of this view',		
+		personSetting: 'Person Setting',
+		modifyPwd: 'Modify Password',
+		loginOut: 'Login Out'
+	},
+	dialogBox: {
+		confirmWarningText:"Confirm whether to exit the current user?",
+		confirmWarningTitle:"Hint",
+		confirmWarningButtonText:"Confirm Exit",
+		cancelButtonText:"Cancel"
 	},
 	menu: {		
 		home: "Home Page",

+ 11 - 1
VinnoManagementSystem/src/locales/lang/zh-cn.js

@@ -16,7 +16,14 @@ export default {
 		loginError: '登录失败',
 		loadingMenuError: '读取菜单失败',
 		languageEN: '英文',
-		languageCN: '简体中文'
+		languageCN: '简体中文',
+		loginResult: "登录成功"
+	},
+	dialogBox: {
+		confirmWarningText:"确认是否退出当前用户?",
+		confirmWarningTitle:"提示",
+		confirmWarningButtonText:"退出",
+		cancelButtonText:"取消"
 	},
 	user: {
 		dynamic: '近期动态',
@@ -26,6 +33,9 @@ export default {
 		nightmode_msg: '适合光线较弱的环境,当前黑暗模式为beta版本',
 		language: '语言',
 		language_msg: '翻译进行中,暂翻译了本视图的文本',
+		personSetting: '个人设置',
+		modifyPwd: '修改密码',
+		loginOut: '退出登录'
 	},
 	menu: {
 		home: "首页",

+ 28 - 8
VinnoManagementSystem/src/views/login/login.vue

@@ -37,7 +37,7 @@
 				<div class="login-header">
 					<h2 style="font-size: 30px;text-align: center;padding-bottom: 20px;">{{ $t('login.signInTitle') }}</h2>
 				</div>
-				<el-form ref="loginForm" :model="ruleForm" :rules="rules" label-width="0" size="large">
+				<el-form ref="loginForm" :model="ruleForm" :rules="rules" label-width="0" size="large" @keyup.enter="login">
 					<el-form-item prop="user">
 						<el-input v-model="ruleForm.user" prefix-icon="el-icon-user" clearable :placeholder="$t('login.userPlaceholder')">
 							<template #append>
@@ -58,7 +58,7 @@
 						</el-row>
 					</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" round @click="login" @keyup.enter="login">{{ $t('login.signIn') }}</el-button>
 					</el-form-item>
 				</el-form>
 				<!-- 其他方式登录 -->
@@ -85,7 +85,7 @@
 				ruleForm: {
 					// user: "admin",
 					// password: "admin",
-					autologin: false
+					autologin: this.$TOOL.data.get("AutoLogin") || false
 				},
 				rules: {
 					user: [
@@ -101,15 +101,26 @@
 		watch:{
 			// userType(val){
 			// 	if(val == 'admin'){
-			// 		this.ruleForm.user = 'admin'
-			// 		this.ruleForm.password = 'admin'
-			// 	}else if(val == 'user'){
+			// 		var remeberUserInfo = this.$TOOL.data.get("RemeberUser");
+			// 		if (remeberUserInfo)
+			// 		{
+			// 			this.ruleForm.user = remeberUserInfo.user;
+			// 			this.ruleForm.password = remeberUserInfo.password;
+			// 		}
+			// 	}
+			// 	else if(val == 'user'){
 			// 		this.ruleForm.user = 'user'
 			// 		this.ruleForm.password = 'user'
 			// 	}
 			// }
 		},
 		created: function() {
+			var remeberUserInfo = this.$TOOL.data.get("RemeberUser");
+			if (remeberUserInfo)
+			{
+				this.ruleForm.user = remeberUserInfo.user;
+				this.ruleForm.password = remeberUserInfo.password;
+			}
 			this.$TOOL.data.remove("TOKEN")
 			this.$TOOL.data.remove("USER_INFO")
 			this.$TOOL.data.remove("MENU")
@@ -153,7 +164,7 @@
 							}
 							var menu = [];
 							menu.push({"name":"home","path":"/home","meta":{"title":this.$t('menu.home'),"icon":"el-icon-home-filled","type":"menu"},"children":[{"name":"dashboard","path":"/dashboard","meta":{"title":this.$t('menu.dashboard'),"icon":"sc-icon-dashboard","affix":true},"component":"home"},{"name":"userCenter","path":"/usercenter","meta":{"title":this.$t('menu.userCenter'),"icon":"sc-icon-user-info"},"component":"userCenter"}]});
-							var menuList = routeConfig.getRouteList(featureInfo.FeatureCodeList);
+							var menuList = routeConfig.getRouteList(routeConfig.routes, featureInfo.FeatureCodeList);
 							menuList.forEach(em => {
 								menu.push(em);
 							});
@@ -164,6 +175,15 @@
 							// menu.push({"name":"setting","path":"/setting","meta":{"title":"配置","icon":"el-icon-setting","type":"menu"},"children":[{"path":"/setting/system","name":"system","meta":{"title":"系统设置","icon":"el-icon-tools","type":"menu"},"component":"setting/system"},{"path":"/setting/user","name":"user","meta":{"title":"用户管理","icon":"el-icon-user-filled","type":"menu"},"component":"setting/user"},{"path":"/setting/role","name":"role","meta":{"title":"角色管理","icon":"el-icon-notebook","type":"menu"},"component":"setting/role"},{"path":"/setting/dic","name":"dic","meta":{"title":"字典管理","icon":"el-icon-document","type":"menu"},"component":"setting/dic"},{"path":"/setting/table","name":"tableSetting","meta":{"title":"表格列管理","icon":"el-icon-scale-to-original","type":"menu"},"component":"setting/table"},{"path":"/setting/menu","name":"settingMenu","meta":{"title":"菜单管理","icon":"el-icon-fold","type":"menu"},"component":"setting/menu"},{"path":"/setting/task","name":"task","meta":{"title":"计划任务","icon":"el-icon-alarm-clock","type":"menu"},"component":"setting/task"},{"path":"/setting/client","name":"client","meta":{"title":"应用管理","icon":"el-icon-help-filled","type":"menu"},"component":"setting/client"},{"path":"/setting/log","name":"log","meta":{"title":"系统日志","icon":"el-icon-warning","type":"menu"},"component":"setting/log"}]});
 							// menu.push({"path":"/other/about","name":"about","meta":{"title":"关于","icon":"el-icon-info-filled","type":"menu"},"component":"other/about"});
 							this.$TOOL.data.set("MENU", menu)
+							this.$TOOL.data.set("AutoLogin", this.ruleForm.autologin)
+							if (this.ruleForm.autologin)
+							{
+								this.$TOOL.data.set("RemeberUser", {user:this.ruleForm.user,password:this.ruleForm.password})
+							}
+							else
+							{
+								this.$TOOL.data.remove("RemeberUser")
+							}
 							//this.$TOOL.data.set("PERMISSIONS", menu.data.permissions)
 						}else{
 							this.islogin = false
@@ -174,7 +194,7 @@
 						this.$router.replace({
 							path: '/'
 						})
-						this.$message.success("Login Success 登录成功")
+						this.$message.success(this.$t('login.loginResult'))
 						this.islogin = false
 					}
 				}

+ 27 - 27
VinnoManagementSystem/src/views/userCenter/index.vue

@@ -71,7 +71,7 @@
 								</el-form-item>
 							</el-form>
 						</el-tab-pane>
-						<el-tab-pane :label="$t('user.settings')">
+						<!-- <el-tab-pane :label="$t('user.settings')">
 							<el-form ref="form" :model="form" label-width="120px" style="margin-top:20px;">
 								<el-form-item :label="$t('user.nightmode')">
 									<el-switch v-model="config.theme" active-value="dark" inactive-value="default" inline-prompt active-icon="el-icon-moon" inactive-icon="el-icon-sunny"></el-switch>
@@ -88,7 +88,7 @@
 									<div class="el-form-item-msg">{{ $t('user.language_msg') }}</div>
 								</el-form-item>
 							</el-form>
-						</el-tab-pane>
+						</el-tab-pane> -->
 					</el-tabs>
 				</el-card>
 			</el-col>
@@ -97,7 +97,7 @@
 </template>
 
 <script>
-	import colorTool from '@/utils/color'
+	//import colorTool from '@/utils/color'
 
 	export default {
 		name: 'userCenter',
@@ -153,32 +153,32 @@
 					sex: "1",
 					about: "正所谓富贵险中求"
 				},
-				colorList: ['#409EFF', '#009688', '#536dfe', '#ff5c93', '#c62f2f', '#fd726d'],
-				config: {
-					lang: this.$TOOL.data.get('APP_LANG') || this.$CONFIG.LANG,
-					theme: this.$TOOL.data.get('APP_THEME') || 'default',
-					colorPrimary: this.$TOOL.data.get('APP_COLOR') || this.$CONFIG.COLOR || '#409EFF'
-				}
-			}
-		},
-		watch:{
-			'config.theme'(val){
-				document.body.setAttribute('data-theme', val)
-				this.$TOOL.data.set("APP_THEME", val);
-			},
-			'config.lang'(val){
-				this.$i18n.locale = val
-				this.$TOOL.data.set("APP_LANG", val);
-			},
-			'config.colorPrimary'(val){
-				document.documentElement.style.setProperty('--el-color-primary', val);
-				for (let i = 1; i <= 9; i++) {
-					document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, colorTool.lighten(val,i/10));
-				}
-				document.documentElement.style.setProperty(`--el-color-primary-darken-1`, colorTool.darken(val,0.1));
-				this.$TOOL.data.set("APP_COLOR", val);
+				// colorList: ['#409EFF', '#009688', '#536dfe', '#ff5c93', '#c62f2f', '#fd726d'],
+				// config: {
+				// 	lang: this.$TOOL.data.get('APP_LANG') || this.$CONFIG.LANG,
+				// 	theme: this.$TOOL.data.get('APP_THEME') || 'default',
+				// 	colorPrimary: this.$TOOL.data.get('APP_COLOR') || this.$CONFIG.COLOR || '#409EFF'
+				// }
 			}
 		},
+		// watch:{
+		// 	'config.theme'(val){
+		// 		document.body.setAttribute('data-theme', val)
+		// 		this.$TOOL.data.set("APP_THEME", val);
+		// 	},
+		// 	'config.lang'(val){
+		// 		this.$i18n.locale = val
+		// 		this.$TOOL.data.set("APP_LANG", val);
+		// 	},
+		// 	'config.colorPrimary'(val){
+		// 		document.documentElement.style.setProperty('--el-color-primary', val);
+		// 		for (let i = 1; i <= 9; i++) {
+		// 			document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, colorTool.lighten(val,i/10));
+		// 		}
+		// 		document.documentElement.style.setProperty(`--el-color-primary-darken-1`, colorTool.darken(val,0.1));
+		// 		this.$TOOL.data.set("APP_COLOR", val);
+		// 	}
+		// },
 		//路由跳转进来 判断from是否有特殊标识做特殊处理
 		beforeRouteEnter (to, from, next){
 			next((vm)=>{