当前位置: 代码迷 >> 综合 >> ExtJS6.2开发-用户管理(二)
  详细解决方案

ExtJS6.2开发-用户管理(二)

热度:12   发布时间:2023-12-25 23:33:25.0

一、Extjs创建控制文件
1)在app目录下找到main\core\user\controller目录创建maCrUserController.js
2)maCrUserController.js文件代码如下:

Ext.define('appcenter.main.core.user.controller.maCrUserController', {
    extend: 'Ext.app.ViewController',alias: 'controller.maCrUserController'});

二、Extjs创建详情页视图文件
1)在app目录下找到main\core\user\view目录创建maCrUserData.js
2)maCrUserData.js文件代码如下:

Ext.define('appcenter.main.core.user.view.maCrUserData', {
    extend: 'Ext.window.Window',alias : 'widget.maCrUserData',id: 'maCrUserData',controller : 'maCrUserController',requires : ['appcenter.main.core.user.controller.maCrUserController','appcenter.main.core.user.component.maCrUserDataForm'],layout: 'fit',fullscreen :true,draggable:false,//拖动resizable:false,	//变大小 width:'100%',height:'100%',minWidth:document.body.clientWidth ,minHeight:document.body.clientHeight ,frame:false,modal: true,closable:false,closeAction:'destroy',autoShow : false,title:'用户管理--新增',items:[{
    layout:'form',items:[{
    xtype:'fieldset',align:'center',items:[{
    xtype:'maCrUserDataForm'}]}],tools:[{
      type:'close',tooltip:'关闭',listeners:{
    click:function(){
    this.up("window").close(); }}}],buttons :['->', {
    xtype: 'button', id: 'editButton',iconCls:'fa fa-pencil', handler: function () {
    },text:'编辑'},{
    xtype: 'button', id : 'saveButton',iconCls:'fa fa-save', handler: 'saveData',text:'保存'},{
     xtype: "button", iconCls:'fa fa-close', handler: function () {
     this.up("window").close(); },text : '关闭'}, '->'],initComponent: function () {
    this.callParent(arguments);},renderTo:Ext.getBody()});

三、Extjs创建窗体组件文件
1)在app目录下找到main\core\user\component目录创建maCrUserDataForm.js
2)maCrUserDataForm.js文件代码如下:

Ext.define('appcenter.main.core.user.component.maCrUserDataForm', {
    extend: 'Ext.form.Panel',alias : 'widget.maCrUserDataForm',id: 'maCrUserDataForm',reader: Ext.create('Ext.data.reader.Json', {
      rootProperty : '',//数据的根属性,如果只是纯数据对象,没有什么root,那写""(空串)或者空着就行 model : 'appcenter.main.core.user.model.maCrUserModel'//使用的model }),layout:'vbox',fieldDefaults: {
    labelAlign: 'right',labelWidth : 75,margin:'0 0 5 0',msgTarget: 'side'},items:[{
    width:'100%', xtype:'fieldset',title: '基本信息',margin:'0 5 5 0',collapsible:true,autoHeight:true,items:[{
    layout:'column',items:[{
    columnWidth:.8,layout:'column' ,defaults:{
    columnWidth:.326},items:[{
    xtype : 'textfield',name : 'dr',hidden: true,fieldLabel : '是否删除'},{
    xtype : 'textfield',name : 'ts',hidden: true,fieldLabel : '乐观锁'},{
    xtype : 'textfield',name : 'pkUser',hidden: true,fieldLabel : '主键'},{
    xtype : 'textfield',allowBlank:false,name : 'userCode',fieldLabel : '用户编码'},{
    xtype : 'textfield',allowBlank:false,name : 'userName',fieldLabel : '用户名称'},{
    xtype : 'textfield',allowBlank:false,name : 'userAccount',fieldLabel : '用户帐号'},{
    xtype : 'textfield',allowBlank:false,name : 'phone',fieldLabel : '手机'},{
    xtype : 'textfield',name : 'email',fieldLabel : '邮箱'},{
    xtype : 'combo',allowBlank:false,store : '',displayField : 'label',valueField : 'value',editable : false,labelAlign : 'right',fieldLabel : '是否锁定',name : 'isLock',value: '2',queryMode: 'local'},{
    xtype:'textareafield',columnWidth: .98,fieldLabel: '备注',name: 'note'}]},{
    columnWidth:.18,xtype : 'container',border : true,items:[{
    xtype : 'box',id : 'sphoto',width: 160,height: 160,align:'center',style:'left:15%',autoEl : {
      tag : 'img',  type : 'image', src : './resources/img/default.gif',  complete : 'off',  name : 'sphoto' }},{
    xtype : 'filefield', style:'margin:15px;margin-left:35px;margin-top:10px',align:'right',buttonText:'上传图片',buttonOnly: true,hideLabel: true,buttonConfig: {
    iconCls: 'fa fa-image' }}]}]}]},{
    width:'100%', xtype:'fieldset',title: '创建信息',margin:'0 5 5 0',collapsible: true,collapsed: true,autoHeight: true,layout:'column',items:[{
    xtype : 'textfield',columnWidth:.245,name : 'createUserId',hidden: true,fieldLabel : '创建人ID'},{
    xtype : 'textfield',columnWidth:.245,name : 'createUser',readOnly: true,fieldLabel : '创建人'},{
    xtype : 'textfield',columnWidth:.245,name : 'createTime',readOnly: true,fieldLabel : '创建时间'},{
    xtype : 'textfield',columnWidth:.245,name : 'modifyUserId',hidden: true,fieldLabel : '修改人ID'},{
    xtype : 'textfield',columnWidth:.245,name : 'modifyUser',readOnly: true,fieldLabel : '修改人'},{
    xtype : 'textfield',columnWidth:.245,name : 'modifyTime',readOnly: true,fieldLabel : '修改时间'}]}]
});

四、Extjs修改maCrUserController,修改后代码如下:

Ext.define('appcenter.main.core.user.controller.maCrUserController', {
    extend: 'Ext.app.ViewController',alias: 'controller.maCrUserController',openData: function(me) {
    var maCrUserData = Ext.getCmp("maCrUserData");if(!maCrUserData){
    if(me.name=='add'){
    maCrUserData =Ext.create('appcenter.main.core.user.view.maCrUserData',{
    title:'用户管理--新增'});Ext.getCmp('editButton').setVisible(false);}else if(me.name=='edit'){
    var maCrUserQueryTable = Ext.getCmp("maCrUserQueryTable");var records = maCrUserQueryTable.getSelectionModel().getSelection();if(records.length>0){
    var pkUser = records[0].get('pkUser');maCrUserData =Ext.create('appcenter.main.core.user.view.maCrUserData',{
    title:'用户管理--编辑'});Ext.getCmp('editButton').setVisible(false);}else{
    Ext.MessageBox.alert('友情提示', '请选择要编辑的数据!');}}else if(me.name=='read'){
    var maCrUserQueryTable = Ext.getCmp("maCrUserQueryTable");var records = maCrUserQueryTable.getSelectionModel().getSelection();if(records.length>0){
    var pkUser = records[0].get('pkUser');maCrUserData =Ext.create('appcenter.main.core.user.view.maCrUserData',{
    title:'用户管理--查阅'});Ext.getCmp('saveButton').setVisible(false);}else{
    Ext.MessageBox.alert('友情提示', '请选择要查阅的数据!');}}}maCrUserData.show();},});

五、Extjs修改maCrUser视图文件,修改后代码如下:

Ext.define('appcenter.main.core.user.view.maCrUser',{
    extend: "Ext.Panel",id: 'maCrUser',layout:'fit',controller : 'maCrUserController',requires : ['appcenter.main.core.user.controller.maCrUserController','appcenter.main.core.user.component.maCrUserQueryTable'],items :[{
    layout:'border',items:[{
    region:'north',items:[{
    xtype : 'container',style:'margin:15px 0 10px 0;',layout: {
    type: 'table',columns: 6,tdAttrs: {
    style:'padding-left:10px;' }},items : [{
    xtype: 'button',scale: 'medium',iconCls : 'fa fa-plus',name : 'add',handler: 'openData',text : '新建'},{
    xtype: 'button',scale: 'medium',iconCls : 'fa fa-pencil',name : 'edit',handler: 'openData',text : '编辑'},{
    xtype: 'button',scale: 'medium',iconCls : 'fa fa-close',name : 'delete',handler:'openData',text : '删除'},{
    xtype: 'button',scale: 'medium',iconCls : 'fa fa-search',name : 'read',handler: 'openData',text : '查阅'}]},{
                     xtype:'form',layout:'form',width : '100%',id: 'maCrUserQueryForm',labelWidth : 85,fieldDefaults: {
    labelAlign: 'right',msgTarget: 'side'},           items:[{
    xtype:'fieldset',align:'center',collapsible:true,title : '查询条件',items:[{
    layout:'column',defaults:{
    layout:'form' ,style:{
    'margin-top':'5px'},},items:[{
    xtype: "textfield",fieldLabel: '用户账号',name: 'userAccount',columnWidth:.49},{
    xtype: "textfield",fieldLabel: '用户名称',name: 'userName',columnWidth:.49},{
    columnWidth:1,style:'padding-top:20px',tbar:['->',{
      text:'查询',iconCls : 'fa fa-search-plus',handler:'queryData'},'-',{
    text:'重置',iconCls : 'fa fa-stop-circle-o',handler:'clearQueryData'},'->']}]}]}]}]},{
    region:'center',xtype:'maCrUserQueryTable'}]}]});

六、Extjs运行结果如下:
在这里插入图片描述
七、至此,整个用户管理的详细页已经开发完毕,还有很多细节需要调整,后续的过程中我会逐步增加。