| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- Ext.define('erp.view.user.UserSetting',{
- extend:'Ext.window.Window',
- alias:'widget.usersetting',
- id:'usersetting',
- title:'用户设置',
- layout:'border',
- width:'60%',
- height:'75%',
- modal:true ,
- maximizable:true,
- initComponent:function(){
- var me = this;
- me.items = [{
- xtype:'grid',
- id:'userSettingGrid',
- region:'center',
- flex:1,
- columns:[{
- header:'用户名',
- dataIndex:'name',
- width:120,
- editor:{
- xtype:'textfield'
- }
- },{
- header:'密码',
- dataIndex:'password',
- width:150,
- flex:1,
- editor:{
- xtype:'textfield'
- }
- },{
- header:'类型',
- dataIndex:'role',
- width:100,
- renderer:function(val){
- if(val=='Default'){
- return '普通用户';
- }else if(val=='Admin'){
- return '<font color="red">管理员</font>';
- }
- return val;
- },
- editor:{
- xtype:'combo',
- editable:false,
- store:Ext.create('Ext.data.Store',{
- fields:['name','value'],
- data:[{
- name:'普通用户',
- value:'Default'
- },{
- name:'管理员',
- value:'Admin'
- }]
- }),
- valueField:'value',
- displayField:'name',
- queryMode:'local',
- }
- }],
- store:Ext.data.StoreManager.lookup('user'),
- plugins: [
- Ext.create('Ext.grid.plugin.CellEditing', {
- clicksToEdit: 2
- })
- ],
- listeners:{
- afterrender:function(grid){
- grid.store.load(function(record, e, success) {
- if(!success) {
- Ext.Msg.alert('失败', '权限不足!');
- }
- grid.getSelectionModel().select(0);
- });
- },
- select:function(grid, record, index, eOpts ){
- var userboardgrid = Ext.getCmp('userboardgrid');
- userboardgrid.setDisabled(false);
- if(record.get('role')=='Admin'){
- userboardgrid.getSelectionModel().selectAll(); //管理员默认全勾选
- userboardgrid.setDisabled(true);
- return;
- }
- var panelCodes = record.get('panelCodes');
- var selRec = new Array();
- Ext.Array.each(userboardgrid.store.data.items,function(item){
- if(panelCodes.indexOf(item.get('code')) != -1){
- selRec.push(item);
- }
- });
- userboardgrid.getSelectionModel().select(selRec);
- }
- },
- tbar:[{
- text:'新增',
- handler:function(){
- me.addUser();
- }
- },{
- text:'删除',
- handler:function(){
- me.deleteUser();
- }
- },{
- text:'保存',
- handler:function(){
- me.save();
- }
- }, '->', {
- xtype:'triggerfield',
- id:'userfilterbox',
- fieldLabel: '',
- triggerCls: "selecter",
- overCls: '',
- hideTrigger : false,
- emptyText: '输入用户名关键字查找',
- editable: true,
- onTriggerClick : function(){
- this.doFilter();
- },
- listeners: {
- specialkey : function(field, e) {
- if (e.getKey() == Ext.EventObject.ENTER) {
- this.doFilter();
- }
- }
- },
- doFilter: function(){
- var grid = Ext.getCmp('userSettingGrid');
- grid.userFilter(this.value);
- }
- }],
- userFilter: function(userName) {
- var grid = this;
- if(!userName) {
- grid.getStore().clearFilter();
- return;
- }
- grid.getStore().filterBy(function(record, id) {
- if(record.get('name').indexOf(userName) != -1) {
- return true;
- }else {
- return false;
- }
- });
- }
- },{
- xtype:'grid',
- id:'userboardgrid',
- region:'east',
- flex:1,
- selectedPanelCodes: [],
- columns:[{
- header:'名称',
- dataIndex:'name',
- flex:1
- },{
- header:'CODE',
- hidden:true,
- dataIndex:'code'
- }],
- tbar:[{
- xtype:'tbtext',
- text:'<span style="font-size:13px;font-weight:bold">面板</font>',
- height:24,
- style:'line-height:24px'
- }],
- store: Ext.create('erp.store.desktopboard').load(),
- selModel: Ext.create('Ext.selection.CheckboxModel'),
- listeners:{
- select:function(grid, record, index, eOpts ){
- var grid = Ext.getCmp('userboardgrid');
- grid.selectedPanelCodes.push(record.get('code'));
- },
- deselect:function( e, record, index, eOpts ){
- var grid = Ext.getCmp('userboardgrid');
- grid.selectedPanelCodes.splice(grid.selectedPanelCodes.indexOf(record.get('code')), 1);
- }
- },
- getSelectedPanels: function() {
- return this.selectedPanelCodes;
- }
- }];
- this.callParent(arguments);
- },
- addUser:function(){
- var me = this;
- var grid = me.getGrid();
- var bol = me.checkGridDirty(grid);
- if(bol){
- Ext.Msg.alert('提示','请先保存当前操作!');
- }else{
- grid.store.insert(0,{
- code:'',
- name:'',
- password:'111111',
- role:'Default'
- });
- grid.getSelectionModel().select(0);
- }
- },
- checkGridDirty:function(grid){
- var bol = false;
- Ext.Array.each(grid.store.data.items,function(item){
- if(item.dirty||!item.get('code')){
- bol = true;
- return false;
- }
- });
- return bol;
- },
- deleteUser:function(){
- var me = this;
- var grid = me.getGrid();
- var record = grid.getSelectionModel().getSelection()[0];
- var userboardgrid = Ext.getCmp('userboardgrid');
- if(record.get('code')){
- Ext.Msg.confirm('提示','是否确定删除该用户',function(btn){
- if(btn=='yes'){
- var el = me.getEl();
- el.mask('删除中...');
- Ext.Ajax.request({
- url:'user/delete/'+record.get('code'),
- method:'POST',
- callback:function(options,success,response){
- el.unmask();
- var res = Ext.decode(response.responseText);
- if(typeof(res.success)!=='undefined'&&res.success==false){
- Ext.Msg.alert('提示','删除失败,原因:'+res.message);
- }else{
- Ext.Msg.alert('提示','删除成功!');
- grid.store.reload();
- userboardgrid.getSelectionModel().deselectAll();
- }
- }
- });
- }
- });
- }else{
- grid.store.remove(record);
- }
- },
- save:function(){
- var me = this;
- var grid = me.getGrid();
- var userboardgrid = Ext.getCmp('userboardgrid');
- var record = grid.getSelectionModel().getSelection()[0];
- if(record){
- var selectedPanels = userboardgrid.getSelectedPanels();
- var values = record.data;
- values.panelCodes = selectedPanels;
- var type;
- if(!record.get('code')){
- type = 'save';
- delete values.code;
- }else{
- type = 'updatePart';
- }
- var el = me.getEl();
- el.mask('保存中...');
- Ext.Ajax.request({
- url:'user/'+type,
- method:'POST',
- params:{
- json:Ext.encode(values)
- },
- callback:function(options,success,response){
- el.unmask();
- var res = Ext.decode(response.responseText);
- if(typeof(res.success)!=='undefined'&&res.success==false){
- Ext.Msg.alert('提示','保存失败,原因:'+res.message);
- }else{
- Ext.Msg.alert('提示','保存成功!');
- grid.store.reload();
- var code;
- if(type=='updatePart'||type=='update'){
- code = record.get('code');
- }else{
- code = res.code;
- }
- userboardgrid.getSelectionModel().deselectAll();
- Ext.defer(function(){
- me.reSelect(grid,code);
- },300);
- }
- }
- });
- }else{
- Ext.Msg.alert('提示','未选中用户!');
- }
- },
- reSelect:function(grid,code){
- var record;
- Ext.Array.each(grid.store.data.items,function(item){
- if(item.get('code')==code){
- record = item;
- return false;
- }
- });
- grid.getSelectionModel().select(record);
- },
- getGrid:function(){
- return Ext.getCmp('userSettingGrid');
- },
- getSelectedBoardCodes:function(userboardgrid){
- var sel = new Array();
- var selPoints = userboardgrid.getSelectionModel().getSelection();
- Ext.Array.each(selPoints,function(point){
- sel.push(point.get('code'));
- });
- return sel;
- }
- });
|