Browse Source

保存成功后重设tabId以及标题

zhuth 7 years ago
parent
commit
92a6d81452

+ 1 - 1
frontend/saas-web/Readme.md

@@ -96,7 +96,7 @@ viewModel: view.core.form.FormPanelModel
 | allowBlank | 是否必填列 | x | true |
 | isValid | 自定义校验规则,传入value,返回boolean | x | function(v) { return v > 10; } |
 - 需要根据columns在models文件夹下添加storeModel对应的Model
-
+- allowBlan和isValid的校验只会校验dirty数据
 ---
 
 ## 查询列表配置

+ 3 - 0
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -95,6 +95,9 @@ Ext.define('saas.view.core.form.FormPanel', {
                     cls: 'x-formpanel-btn-orange',
                     xtype: 'button',
                     text: '新增',
+                    bind: {
+                        hidden: '{!id}'
+                    },
                     handler: 'add'
                 }, {
                     xtype: 'button',

+ 19 - 4
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -17,8 +17,8 @@ Ext.define('saas.view.core.form.FormPanelController', {
 
     add: function(){
         var form = this.getView();
-        var id = form.xtype + '_add';
-        openTab(form.xtype,'新增' + form._title,id);
+        var id = form.xtype + '-add';
+        openTab(form.xtype,'新增' + form._title, id);
     },
     
     delete: function(){
@@ -95,9 +95,16 @@ Ext.define('saas.view.core.form.FormPanelController', {
         })
         .then(function(localJson) {
             if(localJson.success){
-                form.initId = localJson.data.id;
+                var id = localJson.data.id;
+                var code = localJson.data.code;
+                form.initId = id;
                 form.FormUtil.loadData(form);
                 showToast('保存成功');
+
+                var newId = form.xtype + '-' + id;
+                var newTitle = form._title + '(' + code + ')';
+
+                refreshTabTitle(newId, newTitle);
             }
         })
         .catch(function(res) {
@@ -149,7 +156,15 @@ Ext.define('saas.view.core.form.FormPanelController', {
             if(localJson.success){
                 // 未保存直接审核会返回id
                 if(localJson.data) {
-                    form.initId = localJson.data.id;
+                    var id = localJson.data.id;
+                    var code = localJson.data.code;
+                    
+                    form.initId = id;
+
+                    var newId = form.xtype + '-' + id;
+                    var newTitle = form._title + '(' + code + ')';
+
+                    refreshTabTitle(newId, newTitle);
                 }
                 form.FormUtil.loadData(form);
                 form.setEditable(false);

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

@@ -207,8 +207,8 @@ Ext.define('saas.view.core.query.QueryGridPanel', {
             var grid = tableView.up('grid'),
             idValue = record.get(grid.idField),
             codeValue = record.get(grid.codeField),
-            id = grid.xtype + idValue;
-            openTab(grid.addXtype,grid.addTitle+"("+codeValue+")",id, {
+            id = grid.addXtype + '-' + idValue;
+            openTab(grid.addXtype, grid.addTitle+"("+codeValue+")", id, {
                 initId: idValue
             });
         }

+ 1 - 1
frontend/saas-web/app/view/core/query/QueryPanelController.js

@@ -36,7 +36,7 @@ Ext.define('saas.view.core.query.QueryPanelController', {
         var me = this,
         queryPanel = me.getView(),
         gridPanel = queryPanel.down('core-query-querygridpanel'),
-        id = gridPanel.addXtype + '_add';
+        id = gridPanel.addXtype + '-add';
         openTab(gridPanel.addXtype,'新增'+gridPanel.addTitle,id)
     },
     onReSetClick:function(btn){

+ 15 - 15
frontend/saas-web/app/view/main/Navigation.js

@@ -138,14 +138,14 @@ Ext.define('saas.view.main.Navigation', {
                             Ext.Array.each(menuItemText, function (item) {
                                 item.addEventListener('click', function (e) {
                                     var target = e.target,
-                                        dataset = target.dataset,
-                                        viewType = dataset.viewtype,
-                                        type = dataset.type,
-                                        text = dataset.text,
-                                        id = dataset.id;
+                                    dataset = target.dataset,
+                                    viewType = dataset.viewtype,
+                                    type = dataset.type,
+                                    text = dataset.text,
+                                    id = dataset.id;
 
-                                    var tabTitle = text + (type == 'form' ? '' : '查询'),
-                                        tabId = 'maintab-' + type + '-' + id;
+                                    var tabTitle = text + '查询',
+                                    tabId = 'maintab-' + type + '-' + id;
 
                                     menu.navItem.classList.remove(menu.navView.overItemCls);
                                     openTab(viewType, tabTitle, tabId);
@@ -155,14 +155,14 @@ Ext.define('saas.view.main.Navigation', {
                             Ext.Array.each(menuItemIcon, function (item) {
                                 item.addEventListener('click', function (e) {
                                     var target = e.target,
-                                        dataset = target.dataset,
-                                        viewType = dataset.viewtype,
-                                        type = dataset.type,
-                                        text = dataset.text,
-                                        id = dataset.id;
-
-                                    var tabTitle = text + (type == 'form' ? '' : '查询'),
-                                        tabId = 'maintab-' + type + '-' + id;
+                                    dataset = target.dataset,
+                                    viewType = dataset.viewtype,
+                                    type = dataset.type,
+                                    text = dataset.text,
+                                    id = dataset.id;
+
+                                    var tabTitle ='新增' + text,
+                                    tabId = viewType + '-add';
 
                                     menu.navItem.classList.remove(menu.navView.overItemCls);
                                     openTab(viewType, tabTitle, tabId);

+ 21 - 2
frontend/saas-web/overrides/i18n.js

@@ -7,10 +7,10 @@
  */
 function openTab(xtype, title, id, config) {
     var mainTab = Ext.getCmp('main-tab-panel');
-    var panel = Ext.getCmp(id);
+    var panel = mainTab.query('[tabId="' + id + '"]')[0];
     if(!panel) {
         panel = Ext.create('saas.view.core.tab.Panel', {
-            id: id,
+            tabId: id,
             title: title,
             viewType: xtype,
             viewConfig: config
@@ -39,4 +39,23 @@ function showToast(content, title) {
         slideDUration: 400,
         maxWidth: 400
     });
+}
+
+/**
+ * 重设tab标题
+ */
+function refreshTabTitle(id, title) {
+    var currentTab = getCurrentTab();
+    currentTab.tabId = id;
+    currentTab.setTitle(title);
+}
+
+/**
+ * 获得当前Tab
+ */
+function getCurrentTab() {
+    var mainTab = Ext.getCmp('main-tab-panel');
+    var currentTab = mainTab.getActiveTab();
+
+    return currentTab;
 }