Browse Source

单据编码规则使用basepanel通用组件

zhuth 7 years ago
parent
commit
629dc10100

+ 36 - 31
frontend/saas-web/app/view/core/base/GridPanel.js

@@ -208,37 +208,9 @@ Ext.define('saas.view.core.base.GridPanel', {
             store.setPageSize(pageSize);
         },
         itemClick: function(view,record,a,index,c) {
-            var classList = c.target.classList.value;
-            var form = view.ownerCt.ownerCt;
-            if(classList.indexOf('fa-pencil')>-1){
-                var config = {};
-                config.initId = record.get('id');
-                saas.util.BaseUtil.openTab(form._formXtype, '修改'+form._title, form._formXtype+config.initId, config);
-            }else if(classList.indexOf('fa-trash-o')>-1){
-                //删除
-                var id = record.get('id');
-                if(id){
-                    saas.util.BaseUtil.showConfirm('警告', form.deleteOneMsg)
-                    .then(function(yes) {
-                        if(yes == 'yes') {
-                            saas.util.BaseUtil.request({
-                                url: form._deleteUrl+'/'+id,
-                                method: 'POST',
-                            })
-                            .then(function(localJson) {
-                                if(localJson.success){
-                                    //解析参数
-                                    saas.util.BaseUtil.showSuccessToast('删除成功');
-                                    view.ownerCt.store.load();
-                                }
-                            })
-                            .catch(function(e) {
-                                saas.util.BaseUtil.showErrorToast('删除失败: ' + e.message);
-                            });
-                        }
-                    });
-                }
-            }
+            var form = view.up('core-base-basepanel');
+            var grid = view.up('core-base-gridpanel');
+            grid.onItemClick(form, grid,record,a,index,c);
         }
     },
 
@@ -263,6 +235,39 @@ Ext.define('saas.view.core.base.GridPanel', {
         });
     },
 
+    onItemClick: function(form, grid, record,a,index,c) {
+        var classList = c.target.classList.value;
+        if(classList.indexOf('fa-pencil')>-1){
+            var config = {};
+            config.initId = record.get('id');
+            saas.util.BaseUtil.openTab(form._formXtype, '修改'+form._title, form._formXtype+config.initId, config);
+        }else if(classList.indexOf('fa-trash-o')>-1){
+            //删除
+            var id = record.get('id');
+            if(id){
+                saas.util.BaseUtil.showConfirm('警告', form.deleteOneMsg)
+                .then(function(yes) {
+                    if(yes == 'yes') {
+                        saas.util.BaseUtil.request({
+                            url: form._deleteUrl+'/'+id,
+                            method: 'POST',
+                        })
+                        .then(function(localJson) {
+                            if(localJson.success){
+                                //解析参数
+                                saas.util.BaseUtil.showSuccessToast('删除成功');
+                                grid.store.load();
+                            }
+                        })
+                        .catch(function(e) {
+                            saas.util.BaseUtil.showErrorToast('删除失败: ' + e.message);
+                        });
+                    }
+                });
+            }
+        }
+    },
+
     onLoad:function(){
         this.ownerCt.ownerCt.store.load();
     },

+ 93 - 432
frontend/saas-web/app/view/sys/maxnumbers/DataList.js

@@ -1,445 +1,106 @@
-/**
- * Created by zhouy on 2018/10/18.
- */
-Ext.define('saas.view.sys.maxnumbers.DataList', {
-    extend: 'Ext.grid.Panel',
+Ext.define('saas.view.sys.maxnumbers.DataList1', {
+    extend: 'saas.view.core.base.BasePanel',
     xtype: 'sys-maxnumbers-datalist',
-    controller: 'sys-maxnumbers-datalist',
-    viewModel: 'sys-maxnumbers-datalist',
-    autoScroll: true,
-    frame:true,
-    layout:'fit',
-    
-    dataUrl:'/api/commons/number/list',                 
-    deleteUrl:'/api/commons/number/delete/',
 
-    plugins: [{
-        ptype: 'menuclipboard'
-    }],
+    controller: 'sale-business-Product',
+    viewModel: 'sale-business-Product',
+    viewName: 'sys-maxnumbers-datalist',
 
-    tbar: [{
-        width: 110,
-        name: 'mn_name',
-        xtype: 'textfield',
-        emptyText : '单据名称',
-        enableKeyEvents: true,
-        listeners: {
-            keydown: {
-                fn: function(th, e, eOpts) {
-                    if(e.keyCode == 13) {
-                        var grid = th.up('grid');
-                        grid.condition = grid.getConditions();
-                        grid.store.loadPage(1);
-                    }
-                }
-            }
-        }
-    },{
-        width: 110,
-        name: 'mn_leadcode',
-        xtype: 'textfield',
-        emptyText : '单据前缀',
-        enableKeyEvents: true,
-        listeners: {
-            keydown: {
-                fn: function(th, e, eOpts) {
-                    if(e.keyCode == 13) {
-                        var grid = th.up('grid');
-                        grid.condition = grid.getConditions();
-                        grid.store.loadPage(1);
-                    }
-                }
-            }
-        }
-    },{
-        cls:'x-formpanel-btn-blue',
-        xtype:'button',
-        text:'查询',
-        listeners: {
-            click:function(b){
-                var grid = b.ownerCt.ownerCt;
-                grid.condition = grid.getConditions();
-                grid.store.loadPage(1);
-            }
-        }
-    },'->',{
-        cls:'x-formpanel-btn-blue',
-        xtype:'button',
-        text:'新增',
-        hidden:true,
-        listeners: {
-            click: function(){
-                var form = this.ownerCt.ownerCt;
-                var grid = this.ownerCt.ownerCt.items.items[0].grid;
-                this.dialog = form.getController().getView().add({
-                    xtype: 'sys-maxnumbers-window',
-                    bind: {
-                        title: '新增单据编码规则'
-                    },
-                    _parent:form,
-                    _combo:grid,
-                    record:null,
-                    session: true
-                });
-                this.dialog.show();
-            }
-        }
-    }],
-
-    columns : [{
-        text : 'id', 
-        width : 0, 
-        dataIndex : 'id', 
-        xtype : 'numbercolumn', 
-        hidden:true
-    },{
-        text : '单据名称', 
-        width : 200.0, 
-        dataIndex : 'mn_name', 
-        xtype : '', 
-    }, 
-    {
-        text : '单据前缀', 
-        dataIndex : 'mn_leadcode', 
-        width : 110.0, 
-        xtype : '', 
-    }, 
-    {
-        text : '单据规则', 
-        dataIndex : 'mn_rule', 
-        width : 150.0,
-        renderer: function(v) {
-            var o = {
-                yyyymmdd: '年月日',
-                yyyymm: '年月',
-                无: '无'
-            }
-            return o[v];
-        },
-    },{
-        text : '流水长度', 
-        dataIndex : 'mn_number',
-        xtype: 'numbercolumn',
-        width : 110.0,
-        renderer: function(v) {
-            return saas.util.BaseUtil.numberFormat(v, 0, false);
-        }
-    }, {
-        dataIndex: '',
-        flex: 1
-    }],
-
-    dbSearchFields: [],
-    condition:'',
 
+    dataUrl: '/api/commons/number/list',
+    // deleteUrl:'/api/commons/number/delete/',
     initComponent: function() {
         var me = this;
-        if(me.columns){
-            var fields = me.columns.map(column => column.dataIndex);
-            me.columns = me.insertFirstColumn(me.columns);
-            me.store = Ext.create('Ext.data.Store',{
-                fields:fields,
-                autoLoad: true,
-                pageSize: 11,
-                data: [],
-                proxy: {
-                    timeout:8000,
-                    type: 'ajax',
-                    url: me.dataUrl,
-                    actionMethods: {
-                        read: 'GET'
-                    },
-                    reader: {
-                        type: 'json',
-                        rootProperty: 'data.list',
-                        totalProperty: 'data.total',
+        Ext.apply(this, {
+            searchField: [{
+                xtype: 'textfield',
+                name: 'mn_name',
+                columnWidth: 0.2,
+                emptyText:'请输入单据名称'
+            }, {
+                name: 'mn_leadcode',
+                xtype: 'textfield',
+                emptyText : '单据前缀'
+            }],
+        
+            gridConfig: {
+                dataUrl: me.dataUrl,
+                deleteUrl:'/api/commons/number/delete/',
+                actionColumn: [{
+                    xtype:'actioncolumn',
+                    width:50,
+                    dataIndex:'actioncolumn',
+                    text:'操作',
+                    align: 'center',
+                    items: [{
+                        tooltip: '编辑',
+                        iconCls: 'x-fa fa-pencil fa-fw',
+                        scope:this
+                    }]
+                }],
+                onItemClick: function(form, grid, record,a,index,c) {
+                    var classList = c.target.classList.value;
+                    if(classList.indexOf('fa-pencil')>-1){
+                        var form = this.ownerCt;
+                        this.dialog = form.getController().getView().add({
+                            xtype: 'sys-maxnumbers-window',
+                            bind: {
+                                title: '修改单据编码规则'
+                            },
+                            _parent:form,
+                            _combo:this,
+                            record:record,
+                            session: true
+                        });
+                        this.dialog.show();
                     }
                 },
-                listeners: {
-                    beforeload: function (store, op) {
-                        var condition = me.condition;
-                        if (Ext.isEmpty(condition)) {
-                            condition = '';
+                selModel: {
+                    type: 'cellmodel'
+                },
+                hiddenTools: true,
+                data: [{
+
+                }],
+                columns : [{
+                    text : 'id', 
+                    width : 0, 
+                    dataIndex : 'id', 
+                    xtype : 'numbercolumn', 
+                    hidden:true
+                },{
+                    text : '单据名称', 
+                    width : 200.0, 
+                    dataIndex : 'mn_name', 
+                }, 
+                {
+                    text : '单据前缀', 
+                    dataIndex : 'mn_leadcode', 
+                    width : 110.0, 
+                }, 
+                {
+                    text : '单据规则', 
+                    dataIndex : 'mn_rule', 
+                    width : 150.0,
+                    renderer: function(v) {
+                        var o = {
+                            yyyymmdd: '年月日',
+                            yyyymm: '年月',
+                            无: '无'
                         }
-                        Ext.apply(store.proxy.extraParams, {
-                            number: op._page,
-                            size: store.pageSize,
-                            condition: JSON.stringify(condition)
-                        });
-                    }
-                }
-            });
-
-            Ext.apply(me, {
-                dockedItems:[{
-                    xtype: 'pagingtoolbar',
-                    dock: 'bottom',
-                    displayInfo: true,
-                    store: me.store
-                }]
-            });
-        }
-        me.callParent(arguments);
-    },
-
-    onVastDeal:function(url,type){
-        var form = this.ownerCt;
-        var grid = this;
-        var data = grid.getGridSelected(type);
-        if(!data){
-            saas.util.BaseUtil.showErrorToast('请勾选符合条件的行进行操作。');
-            return false;
-        }
-        if(data&&data.length>0){
-            var params = JSON.stringify({baseDTOs:data});
-            saas.util.BaseUtil.request({
-                    url: url,
-                    params: params,
-                    method: 'POST',
-                    async:false
-                })
-                .then(function() {
-                    saas.util.BaseUtil.showSuccessToast('操作成功');
-                    grid.store.load();
-                })
-                .catch(function(e) {
-                    saas.util.BaseUtil.showErrorToast('操作失败: ' + e.message);
-                });
-        }else{
-            saas.util.BaseUtil.showErrorToast('请勾选至少一条明细。');
-        }
-    },
-
-    listeners:{
-        boxready: function(grid, width, height, eOpts) {
-            var store = grid.getStore(),
-            gridBodyBox = grid.body.dom.getBoundingClientRect(),
-            gridBodyBoxHeight = gridBodyBox.height;
-
-            var pageSize = Math.floor(gridBodyBoxHeight / 32);
-
-            store.setPageSize(pageSize);
-
-            grid.ownerCt.el.dom.style.left = '8px';
-            grid.el.dom.style.padding = '0px'
-        },
-        itemClick: function(view,record,a,index,c) {
-            var classList = c.target.classList.value;
-            var grid = this;
-            if(classList.indexOf('fa-pencil')>-1){
-                var form = this.ownerCt;
-                this.dialog = form.getController().getView().add({
-                    xtype: 'sys-maxnumbers-window',
-                    bind: {
-                        title: '修改单据编码规则'
+                        return o[v];
                     },
-                    _parent:form,
-                    _combo:this,
-                    record:record,
-                    session: true
-                });
-                this.dialog.show();
-            }else if(classList.indexOf('fa-trash-o')>-1){
-                //删除
-                var id = record.get('id');
-                if(id){
-                    saas.util.BaseUtil.request({
-                        url: grid.deleteUrl+id,
-                        method: 'POST',
-                    })
-                    .then(function(localJson) {
-                        if(localJson.success){
-                            //解析参数
-                            saas.util.BaseUtil.showSuccessToast('删除成功');
-                            view.ownerCt.store.load();
-                        }
-                    })
-                    .catch(function(e) {
-                        saas.util.BaseUtil.showErrorToast('删除失败: ' + e.message);
-                    });
-                }
-            }
-        }
-    },
-
-    insertFirstColumn:function(columns){
-        var me=this;
-        if(columns.length>0 && columns[0].xtype!='actioncolumn'){
-            return Ext.Array.insert(columns,0,[{
-                xtype:'actioncolumn',
-                width:50,
-                dataIndex:'actioncolumn',
-                text:'操作',
-                align: 'center',
-                items: [{
-                    tooltip: '编辑',
-                    iconCls: 'x-fa fa-pencil fa-fw',
-                    scope:this
+                },{
+                    text : '流水长度', 
+                    dataIndex : 'mn_number',
+                    xtype: 'numbercolumn',
+                    width : 110.0,
+                    renderer: function(v) {
+                        return saas.util.BaseUtil.numberFormat(v, 0, false);
+                    }
                 }]
-            }]);
-        }
-        return columns;
-    },
-
-    getGridSelected:function(type){
-        var isErrorSelect = false;
-        var checkField = this.statusCodeField;
-        var me = this,
-        items = me.selModel.getSelection(),
-        data = new Array() ;
-        Ext.each(items, function(item, index){
-            if(!Ext.isEmpty(item.data[me.idField])){
-                var o = new Object();
-                if(me.idField){
-                    o['id'] = item.data[me.idField];
-                }
-                if(me.codeField){
-                    o['code'] = item.data[me.codeField];
-                }
-                if(type&&type==item.data[checkField]){
-                    isErrorSelect = true
-                }
-                data.push(o);
-            }
+            },
         });
-        if(isErrorSelect){
-            return false;
-        }
-		return data;
-    },
-
-    /**
-     * 获得过滤条件
-     */
-    getConditions: function() {
-        var me = this,
-        tbar = me.getDockedItems()[0],
-        items = Ext.Array.filter(tbar.items.items, function(item) {
-            return !!item.name;
-        }),
-        conditions = [];
-        for(var i = 0; i < items.length; i++) {
-            var item = items[i];
-            var field = item.name,
-            func = item.getCondition,
-            value = item.value,
-            condition;
-
-            if(value&&value!=''){
-                if(typeof func == 'function') {
-                    condition = {
-                        type: 'condition',
-                        value: func(value)
-                    }
-                }else {
-                    var type = item.fieldType || me.getDefaultFieldType(item),
-                    operation = item.operation || me.getDefaultFieldOperation(item),
-                    conditionValue = me.getConditionValue(item, value);
-        
-                    if(!conditionValue) {
-                        continue;
-                    }
-                    condition = {
-                        type: type,
-                        field: field,
-                        operation: operation,
-                        value: conditionValue
-                    }
-                }
-                conditions.push(condition);
-            }
-        }
-
-        return conditions;
-    },
-
-    /**
-     * 只要arr1和arr2中存在相同项即返回真
-     */
-    isContainsAny: function (arr1, arr2) {
-        for (var i = 0; i < arr2.length; i++) {
-            var a2 = arr2[i];
-            if (!!arr1.find(function (a1) {
-                    return a1 == a2
-                })) {
-                return true;
-            }
-        }
-        return false;
-    },
-
-    getDefaultFieldType: function (field) {
-        var me = this,
-            xtypes = field.getXTypes().split('/'),
-            type;
-
-        if (me.isContainsAny(xtypes, ['numberfield'])) {
-            type = 'number';
-        } else if (me.isContainsAny(xtypes, ['datefield', 'condatefield', 'conmonthfield'])) {
-            type = 'date';
-        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
-            type = 'enum';
-        } else if (me.isContainsAny(xtypes, ['combobox', 'multicombo', 'combo', 'radiofield', 'radio'])) {
-            type = 'enum';
-        } else {
-            type = 'string';
-        }
-
-        return type;
-    },
-
-    getDefaultFieldOperation: function (field) {
-        var me = this,
-            xtypes = field.getXTypes().split('/'),
-            operation;
-
-        if (me.isContainsAny(xtypes, ['numberfield', 'datefield', 'dbfindtrigger'])) {
-            operation = '=';
-        } else if (me.isContainsAny(xtypes, ['condatefield', 'conmonthfield'])) {
-            operation = 'between';
-        } else if (me.isContainsAny(xtypes, ['multidbfindtrigger', 'combobox', 'multicombo', 'combo'])) {
-            operation = 'in';
-        } else {
-            operation = 'like';
-        }
-
-        return operation;
-    },
-
-    /**
-     * 处理部分字段值
-     */
-    getConditionValue: function (field, value) {
-        var me = this,
-            xtypes = field.getXTypes().split('/'),
-            conditionValue;
-        if (me.isContainsAny(xtypes, ['datefield'])) {
-            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
-        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
-            var from = value.from,
-                to = value.to;
-
-            conditionValue = from + ',' + to;
-        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
-            var from = value.from,
-                to = value.to;
-
-            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
-        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
-            conditionValue = value;
-        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
-            conditionValue = '\'' + value + '\'';
-        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
-            conditionValue = value.map ? value.map(function (v) {
-                return '\'' + v.value + '\'';
-            }).join(',') : '';
-        } else {
-            conditionValue = value;
-        }
-
-        return conditionValue;
+        this.callParent(arguments);
     }
-
-})
-
-
+});

+ 0 - 5
frontend/saas-web/app/view/sys/maxnumbers/DataListController.js

@@ -2,9 +2,4 @@ Ext.define('saas.view.sys.maxnumbers.DataListController', {
     extend: 'saas.view.core.base.BasePanelController',
     alias: 'controller.sys-maxnumbers-datalist',
 
-    init: function (form) {
-        var me = this;
-        this.control({
-        });
-    }
 });