Procházet zdrojové kódy

session过期提示,左下角增加快速重连/配置中心、用户设置放到桌面/允许用户修改密码

zhuth před 8 roky
rodič
revize
ae0de579da

+ 2 - 2
kanban-console/src/main/webapp/resources/app/controller/login.js

@@ -41,8 +41,8 @@ Ext.define('erp.controller.login', {
 									Ext.getCmp('errortip').show();
 								} else {
 									//设置cookie
-									me.setCookie('username',values.name,'/',14);
-									me.setCookie('password',values.password,'/',14);
+									me.setCookie('username',res.name,'/',14);
+									me.setCookie('role',res.role,'/',14);
 									
 									/**
 									 * 获取链接参数

+ 1 - 1
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageLeftPanel.js

@@ -98,7 +98,7 @@ Ext.define('erp.view.desktop.BoardManageLeftPanel',{
     	var mainpanel = Ext.getCmp('managemain');
  
     	if(record){
-    		Ext.Msg.confirm('提示','是否确定删除面板?',function(btn){
+    		Ext.Msg.confirm('提示','是否确定删除面板  ' + record.get('name') + '?',function(btn){
     			if(btn=='yes'){
 					if(record.get('code')) {
 						Ext.Ajax.request({

+ 2 - 2
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageMainPanel.js

@@ -232,7 +232,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 						name: '新参数',
 						type: 'String',
 						inputMode: 'Radio',
-						optionalValues: null
+						optionalValues: []
 					};
 					grid.addParam(record);
 				}
@@ -244,7 +244,7 @@ Ext.define('erp.view.desktop.BoardManageMainPanel', {
 					var grid =this.up('grid');
 					var record = grid.getSelectionModel().getSelection()[0];
 					if(record) {
-						Ext.Msg.confirm('确认', '确定要删除参数?', function(btn) {
+						Ext.Msg.confirm('确认', '确定要删除参数  ' + record.get('name') + '?', function(btn) {
 							if(btn == 'yes') {
 								grid.deleteParam(record, grid.getStore().indexOf(record));
 							}

+ 1 - 1
kanban-console/src/main/webapp/resources/app/view/desktop/BoardManageRightPanel.js

@@ -116,7 +116,7 @@ Ext.define('erp.view.desktop.BoardManageRightPanel',{
 					var grid = this.up('grid');
 					var record = grid.getSelectionModel().getSelection()[0];
 					if(record) {
-						Ext.Msg.confirm('提示','是否确定删除看板?',function(btn){
+						Ext.Msg.confirm('提示','是否确定删除看板 ' + record.get('name') + ' ?',function(btn){
 							if(btn=='yes'){
 								grid.deleteModel(record, grid.getStore().indexOf(record));
 							}

+ 1 - 8
kanban-console/src/main/webapp/resources/app/view/desktop/BoardParamWindow.js

@@ -169,12 +169,9 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 	},
 	load: function() {
 		var me = this;
-
 		// 添加参数下拉框
 		var paramForm = Ext.getCmp('paramForm');
 		paramForm.addParamCombo();
-
-
 		// 读取看板grid数据
 		var modelGrid = Ext.getCmp('modelGrid');
 		modelGrid.loadGridData();
@@ -233,7 +230,7 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 		}
 		var params = me.getBoardConfig();
 		Ext.Ajax.request({
-			url:'panelInstance/update/',
+			url:'panelInstance/updatePart/',
 			method:'POST',
 			params:{
 				json:Ext.encode(params)
@@ -267,10 +264,6 @@ Ext.define('erp.view.desktop.BoardParamWindow',{
 		})
 		return {
 			code: me.resData.code,
-			panelCode: me.resData.panelCode,
-			userCode: me.resData.userCode,
-			panelVersion: me.resData.panelVersion,
-			userPanelRelationCode: me.resData.userPanelRelationCode,
 			parameters: Ext.encode(parameters),
 			refreshFrequency: config.refreshFrequency,
 			switchFrequency: config.switchFrequency,

+ 31 - 5
kanban-console/src/main/webapp/resources/app/view/desktop/Desktop.js

@@ -86,8 +86,21 @@ Ext.define('erp.view.desktop.Desktop', {
             overItemCls: 'x-view-over',
             trackOver: true,
             itemSelector: me.shortcutItemSelector,
-            store: Ext.create('erp.store.desktopboard').load(function() {
+            store: Ext.create('erp.store.desktopboard').load(function(){
                 var dataView = Ext.getCmp('desktopDataView');
+                var store = dataView.getStore();
+                var userRole = getCookie('role');
+                if(userRole == 'Admin') {
+                    store.insert(0,[{
+                        name:'配置中心',
+                        type:'boardmanage',
+                        iconCls:'setting-shortcut'
+                    }, {
+                        name:'用户设置',
+                        type:'usersetting',
+                        iconCls:'usersettings-shortcut'
+                    }]);
+                }
                 dataView.resetItemLayout();
             }),
             style: {
@@ -190,7 +203,20 @@ Ext.define('erp.view.desktop.Desktop', {
     },
 
     createModelWin:function(record){
-    	var me = this;
+        var me = this;
+        var type = record.get('type');
+        var winType = '';
+        var title = '';
+    	if(type == 'boardmanage') {
+            winType = 'erp.view.desktop.BoardManageWindow';
+            title = '配置中心';
+    	}else if(type == 'usersetting') {
+            winType = 'erp.view.user.UserSetting';
+            title = '用户设置';
+        }else {
+            winType = 'erp.view.desktop.BoardParamWindow';
+            title = subStrLength(record.get('name'), 10) + '  >>  启动配置';
+        }
         // 传入复制对象以去除组件之间相互干扰
         var copyRecord = Object.assign({}, record);
         copyRecord.set = function(field, value) {
@@ -199,10 +225,10 @@ Ext.define('erp.view.desktop.Desktop', {
         copyRecord.get = function(field, value) {
             return this.data[field];
         }
-		Ext.create('erp.view.desktop.BoardParamWindow',{
-			title: subStrLength(record.get('name'), 10) + '  >>  启动配置',
+		Ext.create(winType, {
+			title: title,
 			record: copyRecord
-		}).show();    	
+        }).show();
     },
     
     onWindowClose: function(win) {

+ 80 - 0
kanban-console/src/main/webapp/resources/app/view/desktop/ReLogin.js

@@ -0,0 +1,80 @@
+Ext.define('erp.view.desktop.ReLogin',{
+	extend:'Ext.window.Window',
+	alias:'widget.relogin',
+	id:'relogin',
+	title:'重新登录',
+	layout:'fit',
+	modal:true	,
+	maximizable:false,
+	initComponent:function(){
+		var me = this;
+		me.items = [{
+            xtype: 'form',
+            id:'reloginform',
+            bodyStyle: {
+                border: 'none'
+            },
+            bodyPadding: 10,
+            defaults: {
+                width: 300,
+                labelWidth: 80
+            },
+            items: [{
+                xtype: 'textfield',
+                name: 'name',
+                readOnly: true,
+                fieldLabel: '用户名',
+                value: getCookie('username')
+            }, {  
+                xtype: 'textfield',
+                name: 'password',
+                allowBlank: false,
+                inputType: 'password',
+                blankText: '请输入密码',
+                fieldLabel: '密码',
+                listeners: {
+					specialkey : function(field, e) {
+						if (e.getKey() == Ext.EventObject.ENTER) {
+							me.relogin();
+						}
+					}
+				},
+            }],
+            buttons: [{
+                xtype: 'button',
+                text: '确定',
+                formBind:true,
+                handler: function(btn) {
+                    me.relogin();
+                }
+            }, {
+                xtype: 'button',
+                text: '取消',
+                handler: function(btn) {
+                    btn.ownerCt.ownerCt.ownerCt.close();
+                }
+            }]
+        }];
+		me.callParent(arguments);
+    },
+    relogin: function() {
+        var me = this;
+        var form = Ext.getCmp('reloginform');
+        var values = form.getForm().getValues();
+        me.getEl().mask('loading...');
+        Ext.Ajax.request({
+            url : basePath + 'user/login',
+            method : 'POST',
+            params : values,
+            callback : function(options, success, response) {
+                me.getEl().unmask();
+                var res = Ext.decode(response.responseText);
+                if (res.success == false) {
+                    Ext.Msg.alert('失败', res.message);
+                } else {
+                    Ext.getCmp('relogin').close();
+                }
+            }
+        });	
+    }
+});

+ 26 - 40
kanban-console/src/main/webapp/resources/app/view/desktop/StartMenu.js

@@ -14,37 +14,33 @@ Ext.define('erp.view.desktop.StartMenu', {
     border:false,
     width: 300,
     height: 300,
-    title:'开始菜单',
+    title:'设置',
     toolConfig: {
         width: 80,
-        items: [
-            {
-                text:'设置',
-                iconCls:'settings',
-               // handler: me.onSettings,
-               // scope: me
-            },
-            '-',
-            {
-                text:'退出',
-                iconCls:'logout',
-               	handler: function(){
-               		Ext.Ajax.request({
-               			url:basePath + 'user/logout',
-               			method:'POST',
-               			callback:function(options,success,response){
-               				var res = Ext.decode(response.responseText);
-               				if(res.success==false){
-               					Ext.Msg.alert('退出失败',res.message);
-               				}else{
-               					window.location.reload();
-               				}
-               			}
-               		});
-               	}
-                //scope: me
+        items: [{
+            text:'快速重连',
+            handler: function(){
+                Ext.create('erp.view.desktop.ReLogin').show();
+            }
+        }, '-', {
+            text:'退出',
+            iconCls:'logout',
+            handler: function(){
+                Ext.Ajax.request({
+                    url:basePath + 'user/logout',
+                    method:'POST',
+                    callback:function(options,success,response){
+                        var res = Ext.decode(response.responseText);
+                        if(res.success==false){
+                            Ext.Msg.alert('退出失败',res.message);
+                        }else{
+                            window.location.reload();
+                        }
+                    }
+                });
             }
-        ]
+            //scope: me
+        }]
     },
     initComponent: function() {
         var me = this;
@@ -57,17 +53,10 @@ Ext.define('erp.view.desktop.StartMenu', {
             	iconCls:'video'
             },
             items: [{
-                text:'配置中心',
+                text:'修改密码',
                 handler: function() {
-                    Ext.create('erp.view.desktop.BoardManageWindow',{
-                        title: '配置中心',
-                    }).show();
+                    Ext.create('erp.view.user.UserInfo').show();
                 }
-            },{
-            	text:'用户设置',
-            	handler:function(){
-            		me.setUser();
-            	}
             }]
         });
         me.menu.layout.align = 'stretch';
@@ -109,8 +98,5 @@ Ext.define('erp.view.desktop.StartMenu', {
     addToolItem: function() {
         var cmp = this.toolbar;
         cmp.add.apply(cmp, arguments);
-    },
-    setUser:function(){
-    	Ext.create('erp.view.user.UserSetting').show();
     }
 }); 

+ 1 - 1
kanban-console/src/main/webapp/resources/app/view/desktop/Toolbar.js

@@ -17,7 +17,7 @@ Ext.define('erp.view.desktop.Toolbar', {
             cls: 'ux-start-button',
             iconCls: 'ux-start-button-icon',
             menuAlign: 'bl-tl',
-            text:'开始',
+            text:'设置',
             menu:Ext.widget('startmenu'),
             //hidden:(em_type=='admin')?false:true,
         }/*,{

+ 123 - 0
kanban-console/src/main/webapp/resources/app/view/user/UserInfo.js

@@ -0,0 +1,123 @@
+Ext.apply(Ext.form.VTypes, {
+    confirmPwd: function (value, field) {
+        if (field.confirmPwd) {
+            var first = field.confirmPwd.first;
+            var second = field.confirmPwd.second;
+
+            this.firstField = Ext.getCmp('newpassword');
+            this.seconField = Ext.getCmp('newpassword2');
+            var firstPwd = this.firstField.getValue();
+            var secondPwd = this.seconField.getValue();
+            if (firstPwd == secondPwd) {
+                return true;
+            } else {
+                return false;
+            }
+        }
+    },
+    confirmPwdText: '两次输入的密码不一致!',
+});
+Ext.define('erp.view.user.UserInfo',{
+	extend:'Ext.window.Window',
+	alias:'widget.userinfo',
+	id:'userinfo',
+	title:'修改密码',
+	layout:'fit',
+	modal:true	,
+	initComponent:function(){
+		var me = this;
+		me.items = [{
+            xtype: 'form',
+            id:'userinfoform',
+            bodyStyle: {
+                border: 'none'
+            },
+            bodyPadding: 10,
+            defaults: {
+                width: 300,
+                labelWidth: 80
+            },
+            items: [{
+                xtype: 'hidden',
+                name: 'code',
+                id:'code'
+            }, {
+                xtype: 'displayfield',
+                name: 'name',
+                readOnly: true,
+                fieldLabel: '名称',
+                value: getCookie('username')
+            }, {  
+                xtype: 'textfield',
+                name: 'oldpassword',
+                allowBlank: false,
+                inputType: 'password',
+                blankText: '请输入原密码',
+                fieldLabel: '旧密码'
+            }, {  
+                xtype: 'textfield',
+                name: 'newpassword',
+                id: 'newpassword',
+                inputType: 'password',
+                allowBlank: false,
+                blankText: '请输入新密码',
+                fieldLabel: '新密码',
+                regex: /^[\s\S]{0,16}$/,
+                regexText: '密码长度不能超过16个字符',
+            }, {  
+                xtype: 'textfield',
+                name: 'newpassword2',
+                id: 'newpassword2',
+                inputType: 'password',
+                allowBlank: false,
+                blankText: '请再次输入新密码',
+                fieldLabel: '确认新密码',
+                regex: /^[\s\S]{0,16}$/,
+                regexText: '密码长度不能超过16个字符',
+                vtype:'confirmPwd',
+                confirmPwd: {
+                    first: 'loginPassword',
+                    second:'rePassword'
+                }
+            }],
+            buttons: [{
+                xtype: 'button',
+                text: '保存',
+                formBind:true,
+                handler: function() {
+                    me.updatePassword();
+                }
+            }, {
+                xtype: 'button',
+                text: '取消',
+                handler: function(btn) {
+                    btn.ownerCt.ownerCt.ownerCt.ownerCt.close();
+                }
+            }]
+        }];
+		me.callParent(arguments);
+    },
+    updatePassword: function() {
+        var me = this;
+        var form = Ext.getCmp('userinfoform');
+        var values = form.getForm().getValues();
+        me.getEl().mask('loading...');
+        Ext.Ajax.request({
+            url:'user/resetPwd?password='+values.oldpassword+'&newPassword='+values.newpassword,
+            method:'POST',
+            params:{
+                json: Ext.encode(values)
+            },
+            callback:function(options,success,response){
+                me.getEl().unmask();
+                if(response.responseText == '') return;
+                var res = JSON.parse(response.responseText);
+                if(success) {
+                    Ext.Msg.alert('成功', '已更新!');
+                }else {
+                    Ext.Msg.alert('失败', res.message);
+                }
+            }
+        });
+    }
+});

+ 1 - 1
kanban-console/src/main/webapp/resources/app/view/user/UserSetting.js

@@ -218,7 +218,7 @@ Ext.define('erp.view.user.UserSetting',{
 		var record = grid.getSelectionModel().getSelection()[0];
 		var userboardgrid = Ext.getCmp('userboardgrid');
 		if(record.get('code')){
-			Ext.Msg.confirm('提示','是否确定删除用户',function(btn){
+			Ext.Msg.confirm('提示','是否确定删除用户  ' + record.get('name') + '?',function(btn){
 				if(btn=='yes'){
 					var el = me.getEl();
 					el.mask('删除中...');

+ 6 - 2
kanban-console/src/main/webapp/resources/css/desktop.css

@@ -42,7 +42,7 @@
 */
 
 .ux-start-button-icon {
-    background-image: url(../images/taskbar/sencha.gif) !important;
+    background-image: url(../images/taskbar/settings.png) !important;
     background-color: transparent;
 }
 
@@ -225,7 +225,11 @@ div.ux-taskbar div.x-toolbar {
     height: 48px;
 }
 .setting-shortcut {
-	background-image: url(../images/setting48x48.png);
+    /* background-image: url(../images/setting48x48.png); */
+    background-image: url(../images/panel-settings.png);
+}
+.usersettings-shortcut {
+    background-image: url(../images/user-settings.png);
 }
 
 .x-ie6 .accordion-shortcut {

binární
kanban-console/src/main/webapp/resources/images/icons/fullscreen.png


binární
kanban-console/src/main/webapp/resources/images/panel-settings.png


binární
kanban-console/src/main/webapp/resources/images/taskbar/settings.png


binární
kanban-console/src/main/webapp/resources/images/user-settings.png


binární
kanban-console/src/main/webapp/resources/images/user-settings2.png