/** * Admin.js * 用户管理界面 * emial: hanzhengyi@chinausky.com * create: 2018-12-12 */ Ext.Loader.setConfig({ enabled: true }); Ext.Loader.setPath('Ext.ux', '../../res/extjs/examples/ux'); Ext.require([ 'Ext.grid.*', 'Ext.data.*', 'Ext.ux.RowExpander', 'Ext.selection.CheckboxModel' ]); var sm = Ext.create('Ext.selection.CheckboxModel'); Ext.define('Admin',{ extend: 'Ext.data.Model', fields: [ { name:'I_ORDER_IDX', type:'int' }, { name:'UQ_ADMIN_ID', type:'string' }, { name:'V_ADMIN_NAME', type:'string' }, { name:'V_LOGINNAME', type:'string' }, { name:'V_PASSWORD', type:'string' }, { name:'E_STATUS', type:'string' }, { name:'I_VERSION', type:'int' }, { name:'D_STORETIME', type:'string' } ] }); Ext.onReady(function(){ var baseUrl = document.getElementById('basePath').value; var theme = document.getElementById('theme').value; var chkIcon = '' var unchkIcon = '' var countPerPage = 20; var maxHeight = 10000; var chkBoolean = function(flag) { if(flag) return chkIcon; return unchkIcon; } var clear_append_form = function (){ Ext.getCmp('fa_V_ADMIN_NAME').setValue(""); Ext.getCmp('fa_V_LOGINNAME').setValue(""); Ext.getCmp('fa_V_PASSWORD').setValue("123456"); Ext.getCmp('fa_T_COMMIT').setValue("新增用户"); Ext.getCmp('AdminListPanel').getStore().reload(); } var myStore = Ext.create('Ext.data.Store', { model: 'Admin', pageSize: countPerPage, proxy: { type: 'ajax', url: baseUrl+'iot/admin/getList', reader: { type: 'json', root: 'RESULT', totalProperty: 'totalCount' } }, remoteSort: true }); var AppendForm = Ext.create('Ext.form.Panel', { id: 'AdminAppendForm', labelWidth: 55, url: baseUrl+'iot/admin/append', defaultType: 'textfield', bodyPadding: 15, items: [{ fieldLabel:'用户姓名', id: 'fa_V_ADMIN_NAME', name:'V_ADMIN_NAME', maxLength:20, maxLengthText:'长度不得超出{0}', anchor:'75%' },{ fieldLabel:'用户登录名', id: 'fa_V_LOGINNAME', name: 'V_LOGINNAME', maxLength: 7, maxLengthText:'长度不得超出{0}', anchor:'50%' },{ fieldLabel:'登录密码', id: 'fa_V_PASSWORD', name:'V_PASSWORD', maxLength: 12, maxLengthText:'长度不得超出{0}', anchor:'95%', value:'123456' },{ fieldLabel:'新增用户说明', id: 'fa_T_COMMIT', name:'T_COMMIT', xtype: 'textareafield', maxLength: 250, maxLengthText:'长度不得超出{0}', anchor:'100%', value:'新增用户' },{ id:'fa_queryJson', name:'queryJson', hidden:true }], buttons: [{ text: '提交', iconCls:'ok_btn', handler: function() { var form = this.up('form').getForm(); if (form.isValid()) { var query = new Object(); query.V_ADMIN_NAME = Ext.getCmp('fa_V_ADMIN_NAME').getValue(); query.V_LOGINNAME = Ext.getCmp('fa_V_LOGINNAME').getValue(); query.V_PASSWORD = Ext.getCmp('fa_V_PASSWORD').getValue(); query.T_COMMIT = Ext.getCmp('fa_T_COMMIT').getValue(); query.V_EDITOR_ID = '00000000-000000-000000-000000'; var jsonstr = Ext.JSON.encode(query); Ext.getCmp('fa_queryJson').setValue(jsonstr); form.submit({ method:'post', success: function(form, action) { Ext.Msg.alert('操作成功', '新增用户已保存', function(btn,txt){ clear_append_form(); }); }, failure: function(form, action) { Ext.Msg.alert('操作失败', action.Msg , function(btn,txt){ clear_append_form(); }); } }); } } },{ text: '关闭', iconCls: 'cancel_btn', handler: function() { this.up('window').hide(); } }] }); var appendwin = function(){ Ext.create('Ext.window.Window', { title: '新增用户', height: 300, width: 400, layout: 'fit', items: AppendForm, closeAction: 'hide' }).show(); } var clear_filter_form = function(){ Ext.getCmp('ff_V_ADMIN_NAME').setValue(""); Ext.getCmp('ff_V_LOGINNAME').setValue(""); Ext.getCmp('ff_V_PASSWORD').setValue(""); Ext.getCmp('ff_T_COMMIT').setValue(""); } var states = Ext.create('Ext.data.Store', { fields: ['status', 'name'], data : [ {"status":-1, "name":"全选"}, {"status":0, "name":"无效"}, {"status":1, "name":"有效"} ] }); var FilterForm = Ext.create('Ext.form.Panel', { id: 'AdminFilterForm', labelWidth: 55, defaultType: 'textfield', bodyPadding: 15, items: [{ fieldLabel:'用户姓名', id: 'ff_V_ADMIN_NAME', name:'V_ADMIN_NAME', maxLength:20, maxLengthText:'长度不得超出{0}', anchor:'75%' },{ fieldLabel:'用户登录名', id: 'ff_V_LOGINNAME', name: 'V_LOGINNAME', maxLength: 7, maxLengthText:'长度不得超出{0}', anchor:'75%' },{ id:'ff_queryJson', name:'queryJson', hidden:true }], buttons: [{ text: '提交', iconCls:'ok_btn', handler: function() { var form = this.up('form').getForm(); if (form.isValid()) { var query = new Object(); if(Ext.getCmp('ff_V_ADMIN_NAME').getValue().length>0) query.V_ADMIN_NAME = Ext.getCmp('ff_V_ADMIN_NAME').getValue(); if(Ext.getCmp('ff_V_LOGINNAME').getValue().length>0) query.V_LOGINNAME = Ext.getCmp('ff_V_LOGINNAME').getValue(); var jsonstr = Ext.JSON.encode(query); myStore.getProxy().extraParams = { queryJson : jsonstr }; Ext.getCmp('AdminListPageToolbar').moveFirst(); clear_filter_form(); this.up('window').hide(); } } },{ text: '关闭', iconCls: 'cancel_btn', handler: function() { this.up('window').hide(); } }] }); var filterwin = function() { Ext.create('Ext.window.Window',{ id: 'AdminFilterWin', title: '用户筛选', height: 300, width: 400, layout: 'fit', items: FilterForm, closeAction: 'hide' }).show(); } var clear_modify_form = function (){ Ext.getCmp('fm_V_ADMIN_NAME').setValue(""); Ext.getCmp('fm_V_LOGINNAME').setValue(""); Ext.getCmp('fm_V_PASSWORD').setValue(""); Ext.getCmp('fm_T_COMMIT').setValue(""); Ext.getCmp('fm_E_STATUS').setValue(0); Ext.getCmp('AdminListPanel').getStore().reload(); } var states1 = Ext.create('Ext.data.Store', { fields: ['status', 'name'], data : [ {"status":"未激活", "name":"未激活"}, {"status":"激活", "name":"激活"}, {"status":"锁定", "name":"锁定"}, {"status":"注销", "name":"注销"}, ] }); var ModifyForm = Ext.create('Ext.form.Panel', { id: 'AdminEditForm', labelWidth: 55, url: baseUrl+'iot/admin/update', defaultType: 'textfield', bodyPadding: 15, items: [{ fieldLabel:'用户姓名', id: 'fm_V_ADMIN_NAME', name:'V_ADMIN_NAME', maxLength:20, maxLengthText:'长度不得超出{0}', anchor:'75%' },{ fieldLabel:'用户登录名', id: 'fm_V_LOGINNAME', name: 'V_LOGINNAME', maxLength: 7, maxLengthText:'长度不得超出{0}', anchor:'75%' },{ fieldLabel:'登录密码', id: 'fm_V_PASSWORD', name:'V_PASSWORD', maxLength: 250, maxLengthText:'长度不得超出{0}', anchor:'75%' },{ fieldLabel:'用户状态', id:'fm_E_STATUS', name:'E_STATUS', xtype:'combo', store:states1, displayField : 'name', valueField : 'status', editable : false, maxLength: 7, maxLengthText:'长度不得超出{0}', anchor:'50%' },{ fieldLabel:'修改说明', id: 'fm_T_COMMIT', name:'T_COMMIT', xtype: 'textareafield', maxLength: 250, maxLengthText:'长度不得超出{0}', anchor:'100%' },{ id: 'fm_UQ_ADMIN_ID', name:'UQ_ADMIN_ID', hidden:true },{ id:'fm_queryJson', name:'queryJson', hidden:true }], buttons: [{ text: '修改', iconCls:'ok_btn', handler: function() { var form = this.up('form').getForm(); if (form.isValid()) { var query = new Object(); query.UQ_ADMIN_ID = Ext.getCmp('fm_UQ_ADMIN_ID').getValue(); query.V_ADMIN_NAME = Ext.getCmp('fm_V_ADMIN_NAME').getValue(); query.V_LOGINNAME = Ext.getCmp('fm_V_LOGINNAME').getValue(); query.V_PASSWORD = Ext.getCmp('fm_V_PASSWORD').getValue(); query.T_COMMIT = Ext.getCmp('fm_T_COMMIT').getValue(); if(Ext.getCmp('fm_E_STATUS').getValue()=='未激活'){ query.E_STATUS=0; } if(Ext.getCmp('fm_E_STATUS').getValue()=='激活'){ query.E_STATUS=1; } if(Ext.getCmp('fm_E_STATUS').getValue()=='锁定'){ query.E_STATUS=2; } if(Ext.getCmp('fm_E_STATUS').getValue()=='注销'){ query.E_STATUS=3; } query.V_EDITOR_ID = '00000000-000000-000000-000000'; var jsonstr = Ext.JSON.encode(query); Ext.getCmp('fm_queryJson').setValue(jsonstr); form.submit({ method:'post', success: function(form, action) { Ext.Msg.alert('操作成功', '用户信息已修改', function(btn,txt){ clear_modify_form(); }); }, failure: function(form, action) { Ext.Msg.alert('操作失败', action.Msg , function(btn,txt){ clear_modify_form(); }); } }); this.up('window').hide(); } } },{ text: '关闭', iconCls: 'cancel_btn', handler: function() { this.up('window').hide(); } }] }); var modifywin = function(){ Ext.create('Ext.window.Window', { title: '修改用户信息', height: 300, width: 400, layout: 'fit', items: ModifyForm, closeAction: 'hide' }).show(); } var clear_delete_form = function (){ Ext.getCmp('fn_V_ADMIN_NAME').setValue(""); Ext.getCmp('fn_V_LOGINNAME').setValue(""); Ext.getCmp('fn_V_PASSWORD').setValue(""); Ext.getCmp('fn_T_COMMIT').setValue(""); Ext.getCmp('fn_E_STATUS').setValue(0); Ext.getCmp('AdminListPanel').getStore().reload(); } var deletewin = function() { Ext.create('Ext.window.Window', { title: '注销用户信息', height: 300, width: 400, layout: 'fit', items: DeleteForm, closeAction: 'hide' }).show(); } var del_sm = function() { if(sm.getCount()==1){ var selected = sm.getSelection( ); var query = new Object(); var list = new Array(); var o = new Object(); o.UQ_ADMIN_ID = selected[0].raw.UQ_ADMIN_ID; list.push(o); query.ADMIN_LIST = list; var jsonstr= Ext.JSON.encode(query); Ext.MessageBox.confirm('注销用户','是否注销 '+selected[0].raw.V_ADMIN_NAME+' 用户?',function(btn){ if(btn=='yes'){ Ext.Ajax.request( { timeout : 3000000, url: baseUrl+'iot/admin/delete', params : 'queryJson='+ jsonstr, success: function(resp,opts){ myStore.reload(); } }); } },this); }else{ if(sm.getCount()>1){ var query = new Object(); var list = new Array(); for(var i=0;i