Преглед изворни кода

主从表emptyCellText完善

zhuth пре 7 година
родитељ
комит
a1b8f146ed

+ 18 - 4
frontend/saas-web/app/util/BaseUtil.js

@@ -2,8 +2,7 @@ Ext.define('saas.util.BaseUtil', {
 
     /**
      * 发起Ajax请求
-     * @param url: 请求路径
-     * @param params: 请求参数
+     * @param config: 请求参数
      */
     request: function (config) {
         var url = config.url,
@@ -29,18 +28,33 @@ Ext.define('saas.util.BaseUtil', {
                     if(res.success) {
                         return resolve(res);
                     }else {
-                        // Ext.toast(res.message || '请求错误');
                         console.error('server request failure with code ' + res.code + '.');
                         console.error('failure message: ' + res.message);
                         return reject(res);
                     }
                 },
                 failure: function (response, opts) {
-                    // Ext.toast('请求错误');
                     console.error('server-side failure with status code ' + response);
                     return reject(response);
                 }
             });
         })
+    },
+
+    /**
+     * 显示toast提示
+     * @param content: 内容
+     * @param title: 标题
+     * 
+     */
+    showToast: function(content, title) {
+        Ext.toast({
+            html: content,
+            title: title,
+            closable: false,
+            align: 't',
+            slideDUration: 400,
+            maxWidth: 400
+        });
     }
 });

+ 9 - 0
frontend/saas-web/app/util/FormUtil.js

@@ -41,6 +41,7 @@ Ext.define('saas.util.FormUtil', {
                                 mouseWheelEnabled: false // 取消滚轮事件
                             });
                         }
+
                         // 设置必填
                         if(item.allowBlank==false){
                             // TODO 需要判断类型
@@ -58,6 +59,12 @@ Ext.define('saas.util.FormUtil', {
                             });
 
                             Ext.Array.each(columns, function(c) {
+
+                                // 不可锁定
+                                Ext.applyIf(c, {
+                                    lockable: false
+                                });
+                                
                                 var editor = c.editor;
                                 if(editor && editor.xtype == 'numberfield') {
                                     Ext.applyIf(editor, {
@@ -67,6 +74,8 @@ Ext.define('saas.util.FormUtil', {
                                 }
                             });
 
+                            cnames.push(item.detnoColumn);
+
                             formModel.set('detail' + index + '.detailBindFields', cnames);
                             item.bind = {
                                 store: '{detail' + index + '.detailStore}'

+ 3 - 3
frontend/saas-web/app/view/core/baseform/GridPanel.js

@@ -152,14 +152,14 @@ Ext.define('saas.view.core.baseform.GridPanel', {
                     async:false
                 })
                 .then(function() {
-                    Ext.Msg.alert('提示','操作成功');
+                    Ext.toast('操作成功');
                 })
                 .catch(function(response) {
-                    Ext.Msg.alert('提示','操作失败');
+                    Ext.toast('操作失败');
                 });
                 grid.store.load();
         }else{
-            Ext.Msg.alert('提示','请勾选至少一条明细。');
+            Ext.toast('请勾选至少一条明细。');
         }
     },
 

+ 1 - 2
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -182,10 +182,9 @@ Ext.define('saas.view.core.form.FormPanelController', {
         })
         .then(function(localJson) {
             if(localJson.success){
-                Ext.toast('审核成功');
-                form.initId = localJson.data.id;
                 form.FormUtil.loadData(form);
                 viewModel.set('base.editable', false);
+                Ext.toast('审核成功');
             }
         })
         .catch(function(res) {

+ 22 - 6
frontend/saas-web/app/view/core/form/field/DetailGridField.js

@@ -2,7 +2,7 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
     extend: 'Ext.grid.Panel',
     xtype: 'detailGridField',
 
-    GridUtil: Ext.create('saas.util.GridUtil'),
+    cls: 'x-detailgridfield',
 
     border: 1,
     margin: '0 5 5 0', // formpanel的fieldDefaults未生效
@@ -30,7 +30,21 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
         var me = this;
         me.initColumns();
         me.setSummary();
+
+        addRows = function(id) {
+            var grid = Ext.getCmp(id);
+            grid.addDetail(0);
+        };
+
         Ext.apply(me, {
+            viewConfig: {
+                deferEmptyText: false,
+                emptyText: '无数据'
+            },
+            lockedViewConfig: {
+                deferEmptyText: false,
+                emptyText: '<div style="width: 100%; text-align: center; cursor: pointer; color: green;" class="fa fa-plus" title="新增行" onclick="addRows(\'' + me.id + '\')"></div>',
+            },
             listeners: {
                 itemmouseenter: function(grid, record, item, index, e, eOpts) {
                     var lockedItems = grid.el.dom.parentElement.parentElement.getElementsByClassName('x-grid-scrollbar-clipper-locked')[0].getElementsByClassName('x-grid-item');
@@ -79,17 +93,17 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
             format:'0',
             summaryType: 'count',
             locked:true,
+            lockable: false,
             summaryRenderer: function(value, summaryData, dataIndex) {
                 return Ext.String.format('合计', value);
             },
             renderer: function(value, a, record, index) {
                 return '<div class="text">' + value + '</div>' +
                 '<div class="icons" style="height: 19px; display: none;">' + 
-                    '<div style="line-height: 19px; flex: 1; color: green; cursor: pointer; margin-right: 2px;" class="x-row-insert fa fa-plus" title="插入"></div>'+
-                    '<div style="line-height: 19px; flex: 1; color: red; cursor: pointer; margin-left: 2px;" class="x-row-delete fa fa-minus" title="删除"></div>'+
+                    '<div style="line-height: 19px; flex: 1; color: green; cursor: pointer; margin-right: 2px;" class="x-row-insert fa fa-plus" title="插入"></div>'+
+                    '<div style="line-height: 19px; flex: 1; color: red; cursor: pointer; margin-left: 2px;" class="x-row-delete fa fa-minus" title="删除"></div>'+
                 '</div>';
             },
-            emptyCellText: 'null'
         };
         if (detnoField) {
             Ext.apply(me, { columns: [indexColumn].concat(columns) });
@@ -116,16 +130,18 @@ Ext.define('saas.view.core.form.field.DetailGridField', {
         });
     },
 
-    add10EmptyRow: function() {
+    add10EmptyRow: function(num) {
         var me = this,
         detnoColumn = me.detnoColumn,
         store = me.getStore(),
         selectedRecord = me.selModel.lastSelected,
         datas = [];
 
+        num = num || 3
+
         //当前行后序号全部加1
         var detno = selectedRecord ? selectedRecord.data[detnoColumn] : 0;
-        Ext.Array.each(new Array(10), function() {
+        Ext.Array.each(new Array(num), function() {
             detno += 1;
             var data = {};
             data[detnoColumn] = detno;

+ 9 - 0
frontend/saas-web/app/view/core/form/field/DetailGridField.scss

@@ -0,0 +1,9 @@
+.x-detailgridfield {
+
+    .x-grid-view {
+        
+        .x-grid-empty {
+            padding: 8px 10px;
+        }
+    }
+}

+ 5 - 0
frontend/saas-web/app/view/core/query/QueryGridPanel.js

@@ -47,6 +47,11 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
                         type: 'json',
                         rootProperty: 'data.list',
                         totalProperty: 'data.total',
+                    },
+                    listeners: {
+                        exception: function(proxy, response, operation, eOpts) {
+                            alert('exception');
+                        }
                     }
                 },
                 listeners: {