Kaynağa Gözat

单据编号编辑逻辑调整

zhuth 7 yıl önce
ebeveyn
işleme
e89552aec8

+ 69 - 52
frontend/saas-web/app/view/core/form/FormPanel.js

@@ -37,7 +37,7 @@ Ext.define('saas.view.core.form.FormPanel', {
     remoteConfig: true, // 是否需要从远端读取form配置
     toolBtns: [], // 自定义按钮
 
-    initComponent: function() {
+    initComponent: function () {
         var me = this;
         me.initViewModel();
         me.FormUtil.setItems(me);
@@ -53,21 +53,38 @@ Ext.define('saas.view.core.form.FormPanel', {
                     xtype: 'tbtext',
                     bind: {
                         html: '<span class="x-tb x-no">NO. </span>' +
-                        '<span class="x-tb x-code">{base.codeEditable ? "" : form.' + me._codeField + '}</span>'
+                            '<span class="x-tb x-code">{base.codeEditable ? "" : form.' + me._codeField + '}</span>'
                     }
                 }, {
                     xtype: 'textfield',
                     minHeight: 24,
                     maxHeight: 24,
+                    width: 150,
                     cls: 'x-codeeditor',
+                    hidden: true,
                     bind: {
                         value: '{form.' + me._codeField + '}',
                         hidden: '{!base.codeEditable}'
                     },
                     listeners: {
                         blur: 'codeEditorBlur',
-                        show: function(field, eOpts) {
+                        show: function (field, eOpts) {
+                            field.animate({
+                                duration: 500,
+                                to: {
+                                    width: 200
+                                }
+                            });
+
                             field.focus();
+                        },
+                        hide: function(field) {
+                            field.animate({
+                                duration: 500,
+                                to: {
+                                    width: 150
+                                }
+                            });
                         }
                     }
                 }, {
@@ -86,11 +103,11 @@ Ext.define('saas.view.core.form.FormPanel', {
                         hidden: '{!base.editable}'
                     },
                     handler: 'codeEditorClick'
-                },'->'].concat(me.toolBtns.map(function(btn){
-                    btn.cls = btn.cls ? btn.cls + ' x-formpanel-btn-blue':'x-formpanel-btn-blue';
+                }, '->'].concat(me.toolBtns.map(function (btn) {
+                    btn.cls = btn.cls ? btn.cls + ' x-formpanel-btn-blue' : 'x-formpanel-btn-blue';
                     return btn;
                 }).concat([{
-                    cls:'x-formpanel-btn-orange',
+                    cls: 'x-formpanel-btn-orange',
                     xtype: 'button',
                     text: '新增',
                     handler: 'add'
@@ -112,7 +129,7 @@ Ext.define('saas.view.core.form.FormPanel', {
                         text: '{auditBtnText}'
                     },
                     handler: "auditBtnClick",
-                    
+
                 }]))
             }]
         });
@@ -122,34 +139,34 @@ Ext.define('saas.view.core.form.FormPanel', {
     /**
      * 一些初始化viewModel的方法
      */
-    initViewModel: function() {
+    initViewModel: function () {
         var me = this,
-        codeField = me._codeField,
-        statusField = me._statusField,
-        statusCodeField = me._statusCodeField,
-        viewModel = me.getViewModel();
-        
-        viewModel.set('form.' + codeField, '--------------');
+            codeField = me._codeField,
+            statusField = me._statusField,
+            statusCodeField = me._statusCodeField,
+            viewModel = me.getViewModel();
+
+        viewModel.set('form.' + codeField, '');
         viewModel.set('form.createTime', new Date());
         viewModel.set('form.updateTime', new Date());
 
-        if(statusCodeField) {
+        if (statusCodeField) {
             var o = {};
             o['auditBtnText'] = {
                 bind: '{form.' + statusCodeField + '}',
-                get: function(value) {
+                get: function (value) {
                     viewModel.set('form.' + statusField, value == 'AUDITED' ? '审核' : '反审核');
                     return value == 'AUDITED' ? '反审核' : '审核'
                 }
             };
             viewModel.setFormulas(o);
             viewModel.set('form.' + statusCodeField, "UNAUDITED");
-        }else {
+        } else {
             viewModel.set('auditBtnText', "审核");
         }
     },
 
-    addItems: function(items) {
+    addItems: function (items) {
         var me = this;
         me.setBindFields(items);
         return this.add(items);
@@ -158,19 +175,19 @@ Ext.define('saas.view.core.form.FormPanel', {
     /**
      * 获取form数据
      */
-    getFormData: function() {
+    getFormData: function () {
         var me = this,
-        viewModel = me.getViewModel(),
-        allData = viewModel.getData(),
-        formData = allData['form'],
-        detailCount = me.detailCount,
-        data = {
-            main: formData,
-        };
-
-        for(var i = 0; i < detailCount; i++) {
+            viewModel = me.getViewModel(),
+            allData = viewModel.getData(),
+            formData = allData['form'],
+            detailCount = me.detailCount,
+            data = {
+                main: formData,
+            };
+
+        for (var i = 0; i < detailCount; i++) {
             var detail = allData['detail' + i],
-            store = detail.detailStore;
+                store = detail.detailStore;
 
             data['detail' + i] = store.getData().items;
         }
@@ -178,21 +195,21 @@ Ext.define('saas.view.core.form.FormPanel', {
         return data;
     },
 
-    setFormData: function(formData) {
+    setFormData: function (formData) {
         var me = this,
-        main = formData.main,
-        detailCount = me.detailCount,
-        viewModel = me.getViewModel(),
-        viewData = viewModel.getData();
+            main = formData.main,
+            detailCount = me.detailCount,
+            viewModel = me.getViewModel(),
+            viewData = viewModel.getData();
 
         viewModel.set('form', main);
 
-        for(var i = 0; i < detailCount; i++) {
+        for (var i = 0; i < detailCount; i++) {
             var detailData = formData['detail' + i] || [],
-            detail = viewData['detail' + i],
-            store = detail.detailStore;
+                detail = viewData['detail' + i],
+                store = detail.detailStore;
 
-            if(detailData){
+            if (detailData) {
                 store.loadData(detailData);
             }
         }
@@ -201,36 +218,36 @@ Ext.define('saas.view.core.form.FormPanel', {
     /**
      * 设置需要绑定的字段
      */
-    setBindFields: function(items) {
+    setBindFields: function (items) {
         var me = this,
-        viewModel = me.getViewModel();
+            viewModel = me.getViewModel();
 
-        Ext.Array.each(items, function(item) {
+        Ext.Array.each(items, function (item) {
             var xtype = item.xtype,
-            bind = item.bind,
-            name = item.name,
-            ignore = item.ignore,
-            defaultValue = item.defaultValue;
+                bind = item.bind,
+                name = item.name,
+                ignore = item.ignore,
+                defaultValue = item.defaultValue;
 
-            if(xtype == 'detailGridField') {
+            if (xtype == 'detailGridField') {
                 return;
             }
 
             // 设置model绑定
-            if(!ignore) {
-                if(bind) {
-                    if(!Ext.isString(bind)) {
+            if (!ignore) {
+                if (bind) {
+                    if (!Ext.isString(bind)) {
                         Ext.apply(bind, {
                             value: '{form.' + name + '}'
                         });
-                    }else {
+                    } else {
                         item.bind = '{form.' + name + '}';
                     }
-                }else {
+                } else {
                     item.bind = '{form.' + name + '}';
                 }
                 // 设置默认值
-                if(defaultValue) {
+                if (defaultValue) {
                     viewModel.set('form.' + name, defaultValue);
                 }
             }

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

@@ -205,12 +205,13 @@ Ext.define('saas.view.core.form.FormPanelController', {
         var me = this,
         viewModel = me.getViewModel();
 
-        viewModel.set('base.codeEditable', false);
+        // viewModel.set('base.codeEditable', false);
     },
     codeEditorClick: function() {
         var me = this,
-        viewModel = me.getViewModel();
+        viewModel = me.getViewModel(),
+        codeEditable = viewModel.get('base.codeEditable');
 
-        viewModel.set('base.codeEditable', true);
+        viewModel.set('base.codeEditable', !codeEditable);
     }
 });