Browse Source

主从表代码提交

hy 7 years ago
parent
commit
ea345ef078

+ 8 - 1
frontend/saas-web/app/util/FormUtil.js

@@ -13,12 +13,16 @@ Ext.define('saas.util.FormUtil', {
      * @param url: url
      */
     setItems: function(form) {
+        
         var me = this,
         viewName = form.viewName,
         defaultItems = form.defaultItems,
+        brr = [],
         formModel = form.getViewModel(),
         url = me.baseUrl.replace(me.urlRe, '$1' + viewName);
         
+        brr = brr.concat(form.defaultItems);
+
         this.BaseUtil.request({url, async: false})
         .then(function(response) {
             var res = Ext.decode(response.responseText);
@@ -33,6 +37,9 @@ Ext.define('saas.util.FormUtil', {
                         Ext.apply(item, cusItem);
                     });
                     Ext.Array.each(items, function(item) {
+                        if(item.allowBlank==false){
+                            //item.fieldLabel = "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>"+item.fieldLabel;
+                        }
                         if(item.xtype == 'detailGridField') {
                             var storeName = item.name || item.xtype + Ext.id();
                             item.bind = {
@@ -91,7 +98,7 @@ Ext.define('saas.util.FormUtil', {
             });
         }else{
             var viewModel = form.getViewModel();
-            var detailStore = viewModel.get('detailGridField');
+            var detailStore = viewModel.get('_detailStore');
             detailStore.loadData([{},{},{},{},{},{},{},{},{},{}]);
         }
     }

+ 0 - 32
frontend/saas-web/app/view/core/form/DateField.js

@@ -1,32 +0,0 @@
-Ext.define('saas.view.core.form.DateField', {
-    extend: 'Ext.form.field.Date',
-    alias: 'widget.datetimefield',
-
-    setValue: function(v) {
-        var me = this,
-            utilDate = Ext.Date,
-            rawDate;
-        me.lastValue = me.rawDateText;
-        me.lastDate = me.rawDate;
-        if (Ext.isDate(v)) {
-            rawDate = me.rawDate = v;
-            me.rawDateText = me.formatDate(v);
-        } else {
-            rawDate = me.rawDate = me.rawToValue(v);
-            me.rawDateText = me.formatDate(v);
-            if (rawDate === v) {
-                if(v&&v.indexOf('.')>-1&&v.indexOf('T')>-1){
-                     v = v.substring(0,v.indexOf('T'));
-                    rawDate = null;
-                }else{
-                    rawDate = me.rawDate = null;
-                    me.rawDateText = '';
-                }     
-            }
-        }
-        if (rawDate && !utilDate.formatContainsHourInfo(me.format)) {
-            me.rawDate = utilDate.clearTime(rawDate, true);
-        }
-        me.callParent(arguments);
-    }
-});

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

@@ -56,7 +56,8 @@ Ext.define('saas.view.core.form.FormPanel', {
                 }, {
                     xtype: 'button',
                     text: '保存',
-                    handler: 'save'
+                    handler: 'save',
+                    formBind: true
                 }, {
                     xtype: 'button',
                     text: '删除',
@@ -110,6 +111,7 @@ Ext.define('saas.view.core.form.FormPanel', {
      * 设置需要绑定的字段
      */
     setBindFields: function(items) {
+        debugger
         var me = this,
         viewModel = me.getViewModel(),
         bindFields = [];

+ 51 - 56
frontend/saas-web/app/view/core/form/FormPanelController.js

@@ -11,9 +11,7 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var title = '新增' + btn.ownerCt.ownerCt._title;
         var id = form.xtype + '_add';
         existingItem = mainTab.down('[id=' + id + ']');
-
         lastView = mainTab.getActiveTab();
-
         if (!existingItem) {
             var form = {
                 id,
@@ -27,26 +25,25 @@ Ext.define('saas.view.core.form.FormPanelController', {
     },
     
     delete: function(btn){
+        var me = this;
         var form = btn.ownerCt.ownerCt;
         var id = form.getForm().findField(form._idField);
         if(id&&id.value!=0){
-            Ext.Ajax.request({
+            me.BaseUtil.request({
                 url: form._deleteUrl+id.value,
-                params: '',
-                headers: {
-                    'Access-Control-Allow-Origin': '*',
-                    "Content-Type": 'application/json;charset=UTF-8' 
-                },
-                success: function (response, opts) {
+                method: 'GET',
+            })
+            .then(function(res) {
+                var localJson = new Ext.decode(res.responseText);
+                if(localJson.success){
                     var mainTab = Ext.getCmp('main-tab-panel');
                     mainTab.getActiveTab().close();
                     //解析参数
                     Ext.Msg.alert('提示','删除成功');
-                },
-                failure: function (response, opts) {
-                    //失败
-                    Ext.Msg.alert('提示','删除失败');
                 }
+            })
+            .catch(function() {
+                Ext.Msg.alert('提示','删除失败');
             });
         }
     },
@@ -64,88 +61,86 @@ Ext.define('saas.view.core.form.FormPanelController', {
         }
         //form里面数据
         var formData = form.getFormData();
-        var gridData = [];
+        var gridData = formData.detail?formData.detail:[];
         var dirtyGridData = [];
-        if(formData.detailGridField){
-            gridData = formData.detail.data.items;
-        }
         if(gridData.length>0){
-            Ext.each(gridData, function(item){
-                debugger
+            Ext.each(gridData, function(item,index){
                 if(item.dirty){
-                    if(item.data.id.indexOf('extMode')>-1){
+                    if((typeof item.data.id) != "number" && item.data.id.indexOf('extMode')>-1){
                         item.data.id = '';
                     }
+                    item.data[form._detnoColumn] = index + 1;
                     dirtyGridData.push(item.data)
                 }
             });
         }   
-        debugger
         var params = {
             main:formData.main,
             items:dirtyGridData
         }
-        return false;
         me.BaseUtil.request({
             url: form._saveUrl,
             params: JSON.stringify(params),
             method: 'POST',
         })
-        .then(function() {
-            Ext.Msg.alert('提示','保存成功');
+        .then(function(res) {
+            var localJson = new Ext.decode(res.responseText);
+            if(localJson.success){
+                Ext.Msg.alert('提示','保存成功');
+                form.initId = localJson.data.id;
+                form.FormUtil.loadData(form);
+            }
         })
         .catch(function() {
             Ext.Msg.alert('提示','保存失败');
         });
     },
+
     audit: function(btn){
+        var me = this;
         var form = btn.ownerCt.ownerCt;
+        if(form.getForm().wasDirty==false){
+            Ext.Msg.alert('提示','未修改数据,请修改后保存');
+            return false;
+        }
         if(form.getForm().wasValid==false){
             Ext.Msg.alert('提示','表单校验有误,请检查');
             return false;
         }
         //form里面数据
-        var formData = form.viewModel.data;
-        var gridData = [];
-        var newGridData = [];
-        if(formData.detailGridField){
-            gridData = formData.detailGridField;
-        }
-        var grid = form.query('detailGridField')[0];
-        var updRecords = grid.store.getUpdatedRecords();
-        if(updRecords.length>0){
-            Ext.each(updRecords, function(rec){
-                Ext.each(gridData, function(data,index){
-                    if(data.id==rec.id){
-                        if(data.id.indexOf('extMode')>-1){
-                            data.id = '';
-                            data[form._detnoColumn] = index + 1;
-                        }
-                        newGridData.push(data);
+        var formData = form.getFormData();
+        var gridData = formData.detail?formData.detail:[];
+        var dirtyGridData = [];
+        if(gridData.length>0){
+            Ext.each(gridData, function(item,index){
+                if(item.dirty){
+                    if((typeof item.data.id) != "number" && item.data.id.indexOf('extMode')>-1){
+                        item.data.id = '';
                     }
-                });
+                    item.data[form._detnoColumn] = index + 1;
+                    dirtyGridData.push(item.data)
+                }
             });
         }   
         var params = {
-            main:formData,
-            items:newGridData
+            main:formData.main,
+            items:dirtyGridData
         }
-        Ext.Ajax.request({
+        me.BaseUtil.request({
             url: form._auditUrl,
             params: JSON.stringify(params),
             method: 'POST',
-            headers: {
-                'Access-Control-Allow-Origin': '*',
-                "Content-Type": 'application/json;charset=UTF-8' 
-            },
-            success: function (response, opts) {
-                //解析参数
+        })
+        .then(function(res) {
+            var localJson = new Ext.decode(res.responseText);
+            if(localJson.success){
+                debugger
                 Ext.Msg.alert('提示','审核成功');
-            },
-            failure: function (response, opts) {
-                //失败
-                Ext.Msg.alert('提示','审核失败');
+                form.FormUtil.loadData(form);
             }
+        })
+        .catch(function() {
+            Ext.Msg.alert('提示','审核失败');
         });
-    },
+    }
 });

+ 1 - 3
frontend/saas-web/app/view/main/MainController.js

@@ -21,9 +21,7 @@ Ext.define('saas.view.main.MainController', {
             mainTab = refs.mainTabPanel,
             // existingItem = mainTab.child(type),
             newView,
-            id = 'maintab-' + nodeData.id 
-
-,
+            id = 'maintab-' + nodeData.id,
             title = nodeData.text;
             existingItem = mainTab.down('[id=' + id + ']'),
             lastView = mainTab.getActiveTab();

+ 25 - 19
frontend/saas-web/app/view/test/order/FormPanel.js

@@ -18,7 +18,7 @@ Ext.define('saas.view.test.order.FormPanel', {
     _auditUrl:'http://192.168.253.58:8800/purchase/audit',
     _deleteUrl:'http://192.168.253.58:8800/purchase/delete/',
     _deleteDetailUrl:'http://192.168.253.58:8800/purchase/deleteItem/',
-    initId:0,
+    initId:11,
 
     toolBtns: [{
         xtype: 'button',
@@ -47,8 +47,9 @@ Ext.define('saas.view.test.order.FormPanel', {
         name : "pu_date", 
         bind : "{pu_date}", 
         fieldLabel : "采购日期", 
-        allowBlank : true, 
-        columnWidth : 0.25
+        allowBlank : false, 
+        columnWidth : 0.25,
+        format:'Y-m-d'
     }, {
         xtype : "hidden", 
         name : "pu_vendid", 
@@ -126,7 +127,7 @@ Ext.define('saas.view.test.order.FormPanel', {
         columns : [
             {
                 text : "序号", 
-                dataIndex : "pdDetno", 
+                dataIndex : "pd_detno", 
                 width : 80.0, 
                 xtype : "rownumberer"
             }, 
@@ -185,23 +186,18 @@ Ext.define('saas.view.test.order.FormPanel', {
                 dataIndex : "pd_taxtotal", 
                 flex : 1.0, 
                 xtype : "numbercolumn"
-            }, 
-            {
-                text : "id", 
-                dataIndex : "id", 
-                flex : 1.0, 
-                xtype : "numbercolumn"
             }
         ]
     }, {
         format : "Y-m-d", 
-        xtype : "datetimefield", 
+        xtype : "datefield", 
         name : "createTime", 
         bind : "{createTime}", 
         fieldLabel : "创建时间", 
         allowBlank : true, 
         columnWidth : 0.25
     }, {
+        format : "Y-m-d",
         xtype : "datefield", 
         name : "updateTime", 
         bind : "{updateTime}", 
@@ -212,19 +208,29 @@ Ext.define('saas.view.test.order.FormPanel', {
         xtype : "textfield", 
         readOnly : true, 
         editable : false, 
-        name : "puStatus", 
-        bind : "{puStatus}", 
+        name : "pu_status", 
+        bind : "{pu_status}", 
         fieldLabel : "单据状态", 
         allowBlank : true, 
         columnWidth : 0.25
-    }, {
-        xtype : "hidden", 
-        readOnly : true, 
-        editable : false, 
+    }, 
+    // {
+    //     xtype : "hidden", 
+    //     readOnly : true, 
+    //     editable : false, 
+    //     name : "pu_statuscode", 
+    //     bind : "{pu_statuscode}", 
+    //     fieldLabel : "单据状态码", 
+    //     allowBlank : true, 
+    //     columnWidth : 0.0
+    // },
+    {
+        xtype : "textfield", 
         name : "pu_statuscode", 
         bind : "{pu_statuscode}", 
-        fieldLabel : "单据状态码", 
+        fieldLabel : "忽略字段", 
+        ignore:true,
         allowBlank : true, 
-        columnWidth : 0.0
+        columnWidth : 0.25
     }]
 });

+ 6 - 0
frontend/saas-web/ext/build/ext-all-rtl-debug.js

@@ -206312,6 +206312,12 @@ Ext.define('Ext.form.field.Date', {
             rawDate;
         me.lastValue = me.rawDateText;
         me.lastDate = me.rawDate;
+        //解析后台日期格式为 Y-m-d
+        if(v&&(typeof v) == "string"&&v.indexOf('.')==19&&v.indexOf('T')==10){
+            var d = new Date(v);
+            var times=d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate(); //+ ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds(); 
+            v = times;
+        }
         if (Ext.isDate(v)) {
             rawDate = me.rawDate = v;
             me.rawDateText = me.formatDate(v);