Browse Source

代码提交

hy 7 years ago
parent
commit
4cd7706120

+ 21 - 8
frontend/saas-web/app/view/core/dbfind/MultiDbfindGridPanel.js

@@ -106,16 +106,12 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
                             });
                             });
                             grid.condition = grid.getCondition(items);
                             grid.condition = grid.getCondition(items);
                             grid.store.loadPage(1);
                             grid.store.loadPage(1);
+                            grid.selModel.noChange = true;
+                            grid.selModel.deselectAll();
+                            grid.selModel.select(grid.selectRecordArr);
+                            grid.selModel.noChange = false;
                         }
                         }
                     },'->',{
                     },'->',{
-                        xtype:'button',
-                        text:'新增',
-                        handler:function(b){
-                            var grid = me;
-                            var trigger = grid.ownerCt.trigger;
-                            openTab(trigger.addXtype, '新增'+trigger.addTitle,trigger.addXtype + '_add');
-                        }
-                    },{
                         xtype:'button',
                         xtype:'button',
                         text:'确定',
                         text:'确定',
                         cls:'x-formpanel-btn-blue',
                         cls:'x-formpanel-btn-blue',
@@ -147,6 +143,23 @@ Ext.define('saas.view.core.dbfind.MultiDbfindGridPanel', {
                             mainGrid.up('detailGridField').fireEvent('edit');
                             mainGrid.up('detailGridField').fireEvent('edit');
                             grid.ownerCt.close();
                             grid.ownerCt.close();
                         }
                         }
+                    },{
+                        xtype:'button',
+                        text:'新增',
+                        handler:function(b){
+                            var grid = me;
+                            var trigger = grid.ownerCt.trigger;
+                            openTab(trigger.addXtype, '新增'+trigger.addTitle,trigger.addXtype + '_add');
+                        },
+                        listeners:{
+                            afterrender:function(b){
+                                var grid = me;
+                                var trigger = grid.ownerCt.trigger;
+                                if(!trigger.addXtype||trigger.addXtype==''){
+                                    b.hide();
+                                }
+                            }
+                        }
                     }])
                     }])
                 },{
                 },{
                     xtype: 'pagingtoolbar',
                     xtype: 'pagingtoolbar',

+ 3 - 1
frontend/saas-web/app/view/core/dbfind/MultiDbfindTrigger.js

@@ -226,7 +226,9 @@ Ext.define('saas.view.core.dbfind.MultiDbfindTrigger', {
                             if(nowRec.get(item.to)&&nowRec.get(item.to)!=""){
                             if(nowRec.get(item.to)&&nowRec.get(item.to)!=""){
                                 nowRec.set(item.to,null);
                                 nowRec.set(item.to,null);
                             }
                             }
-                            delete nowRec.modified[item.to];
+                            if(nowRec.modified){
+                                delete nowRec.modified[item.to];
+                            }
                             if(JSON.stringify(nowRec.modified)=="{}"){
                             if(JSON.stringify(nowRec.modified)=="{}"){
                                 nowRec.dirty = false
                                 nowRec.dirty = false
                             }
                             }

+ 214 - 0
frontend/saas-web/app/view/core/form/DataMultiCombo.js

@@ -0,0 +1,214 @@
+/**
+ * Created by zhouy on 2018/10/17.
+ */
+Ext.define('saas.view.core.form.DataMultiCombo', {
+    extend: 'Ext.form.field.Trigger',
+    alias: 'widget.datamulticombo',
+    editable : false,
+    matchFieldWidth: true,
+    value: [],
+    cachedConfig: {
+        menuAlign: 'tl-bl?',
+        destroyMenu: true
+    },
+    initComponent: function() {
+        var me = this;
+        //获取数据
+        if(me.dataUrl){
+            Ext.Ajax.request({  
+                url : me.dataUrl,
+                timeout: 100000000,  
+                method : 'post',  
+                params : {}  ,
+                headers:{
+                    'Access-Control-Allow-Origin': '*',
+                    'Authorization':  saas.util.State.get('session').token
+                },
+                success: function(fp, o){
+                    // if(o.result.error){
+                    //     showError(o.result.error);
+                    // } else {
+                    //     var msg = Ext.getCmp('baseform').ownerCt.ownerCt.down('htmleditor[name=msg]');
+                    //     var imgel=msg.getEl().dom.getElementsByTagName('iframe')[0].contentWindow.document.body;
+                    //     if(imgel.getElementsByTagName('img').length>0){
+                    //       imgel.removeChild(imgel.getElementsByTagName('img')[0]);
+                    //     }
+                    //     //Ext.getCmp('baseform').ownerCt.ownerCt.down('hidden').setValue('../../../'+o.result.path);
+                    //     Ext.getCmp('baseform').ownerCt.setValue(o.result.path);
+                    //     var element = document.createElement("img");
+                    //     element.src = basePath + 'common/download.action?path=' + o.result.path.replace(/\+/g, '%2B');
+                    //     element.style="width:100%;height:100%";            
+                    //     element.title = '&img' + o.result.filepath + ";";
+                    //     msg.setValue('<img src="'+element.src+'" style=width:100%;height:100%;>');
+                    // }
+                },
+                failure: function (response, opts) {
+                    showToast('上传失败: ' + response.responseText);
+                }
+            });
+            me.BaseUtil.request({
+                url: me.dataUrl,
+                params: '',
+                method: 'POST',
+                async:false
+            })
+            .then(function(localJson) {
+                if(localJson.success){
+                }
+            })
+            .catch(function(res) {
+                console.error(res);
+                showToast('保存失败: ' + res.message);
+            });
+
+            // datas: [
+            //     ["已审核", "已审核"],
+            //     ["未审核", "未审核"]
+            // ]
+        }
+        me.callParent(arguments);
+    },
+    listeners:{
+        afterrender:function(f){
+            this.mon(f.el,{
+                mouseover: this.onMouseOver,
+                mouseleave:this.onMouseLeave,
+                scope:this
+            });
+        }
+
+    },
+    onMouseOver:function(){
+       this.showMenu();
+    },
+    onMouseLeave:function(a,b,c){
+        this.hideMenu(a.parentEvent?a:b);//el光标离开第二个参数为Event对象
+    },
+    onTriggerClick:function(){
+        this.showMenu();
+    },
+    getMenu: function() {
+        var me = this;
+
+        if (!me.menu) {
+
+            me.menu = Ext.create('Ext.menu.Menu',{
+                hideOnParentHide: false,
+                items: me.getMenuItems(),
+                listeners:{
+                    mouseleave:me.onMouseLeave,
+                    scope:me
+                }
+            });
+        }
+        return me.menu;
+    },
+    getMenuItems:function(){
+        var me = this,
+            i = 0,
+            item,
+            items = me.datas,
+            itemsLn = me.datas.length,
+            menuItems = [],
+            value = me.value;
+        for (; i < itemsLn; i++) {
+            item = items[i];
+            var checked = !!value.find(function(v) {
+                return v.value = iem[0];
+            });
+            menuItem = new Ext.menu.CheckItem({
+                text: item[1],
+                checked: checked,
+                checkValue:item[0],
+                hideOnClick: false,
+                checkHandler: this.onCheckChange,
+                scope: this
+            });
+            menuItems.push(menuItem);
+        }
+        return menuItems.length ? menuItems : null;
+    },
+    onCheckChange:function(checkItem, checked){
+        var items=this.menu.items.items,
+            checkedItems = [];
+        Ext.Array.each(items,function(item){
+            if(item.checked){
+                checkedItems.push({
+                    text: item.text,
+                    value: item.checkValue
+                });
+            }
+        });
+        this.setValue(checkedItems);
+    },
+
+    setValue: function(items) {
+        var me = this, rawV = '',
+        datas = me.datas,
+        menu = me.menu;
+        if(!Ext.isArray(items)) {
+            items = [items]
+        }
+        items.map(function(item, index) {
+            if(Ext.isString(item)) {
+                var data = datas.find(function(d) {
+                    return d[0] == item;
+                });
+                items[index] = {
+                    text: data[1],
+                    value: data[0]
+                }
+            }
+        })
+        rawV = items.map(function(item) {
+            return item.text
+        }).join(',');
+        this.setRawValue(rawV);
+        this.value = items;
+        if(menu) {
+            Ext.Array.each(menu.items.items, function(item) {
+                item.setChecked(!!items.find(function(i) {
+                    return i.value == item.checkValue;
+                }));
+            });
+        }
+        this.publishState('value', items);
+    },
+
+    showMenu: function (e, menu) {
+        menu = menu || this.getMenu();
+        /**
+         * menu上边框样式待处理
+         * */
+        if (menu) {
+            if (menu.isVisible()) {
+                    menu.focus();
+            } else {
+                menu.autoFocus = true;
+                if(this.matchFieldWidth){
+                    menu.setWidth(this.bodyEl.getWidth());
+                }
+                if (menu.isMenu) {
+                    menu.showBy(this.inputEl, this.getMenuAlign(),[-1, 0]);
+                } else if (menu.isViewportMenu) {
+                    menu.setDisplayed(!menu.getDisplayed());
+                } else {
+                    menu.show();
+                }
+            }
+        }
+    },
+    hideMenu: function(b) {
+        if (this.hasVisibleMenu()) {
+            var target=b.parentEvent.relatedTarget;
+            if(!((target.className && target.className.indexOf('x-menu')!=-1) || (target.name && target.name.indexOf(this.name)!=-1))){
+                this.menu.hide();
+            }
+        }
+        return this;
+    },
+    hasVisibleMenu: function() {
+        var menu = this.menu;
+        return menu && menu.rendered && menu.isVisible();
+    }
+});

+ 28 - 0
frontend/saas-web/app/view/document/kind/ChildForm.js

@@ -221,6 +221,34 @@ Ext.define('KitchenSink.view.binding.ChildForm', {
                 maxLength: 200
                 maxLength: 200
             }]
             }]
         },
         },
+        accountinformation:{
+            items:[{
+                xtype:'hidden',
+                name:'roleIds',
+                hidden:true,
+            },{
+                xtype:'datamulticombo',
+                dataUrl:'/api/account/role/list',
+                fieldLabel: '关联角色',
+                name: 'roleNames',
+                allowBlank:false,
+                maxLength: 20
+            },{
+                xtype:'textfield',
+                fieldLabel: '联系电话',
+                name: 'mobile',
+                allowBlank:true,
+                maxLength: 30,
+                beforeLabelTextTpl: "",
+            },{
+                xtype:'textfield',
+                fieldLabel: '联系邮件',
+                name: 'email',
+                allowBlank:true,
+                maxLength: 30,
+                beforeLabelTextTpl: "",
+            }]
+        },
         warehouse:{
         warehouse:{
             items:[{
             items:[{
                 xtype:'hidden',
                 xtype:'hidden',

+ 1 - 1
frontend/saas-web/app/view/sale/sale/FormPanel.js

@@ -59,7 +59,7 @@ Ext.define('saas.view.sale.sale.FormPanel', {
         fieldLabel : "交货地址", 
         fieldLabel : "交货地址", 
         allowBlank : false, 
         allowBlank : false, 
         columnWidth : 0.5,
         columnWidth : 0.5,
-        hiddenBtn:false,//true 则会关闭新增按钮功能
+        hiddenBtn:true,//true 则会关闭新增按钮功能
         addHandler:function(b){
         addHandler:function(b){
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var document = Ext.create('saas.view.document.kind.Kind',{});
             var form = this.ownerCmp.ownerCt;
             var form = this.ownerCmp.ownerCt;

+ 7 - 8
frontend/saas-web/app/view/sys/account/DataList.js

@@ -76,7 +76,7 @@ Ext.define('saas.view.sys.account.DataList', {
     },{
     },{
         text : '联系邮箱', 
         text : '联系邮箱', 
         dataIndex : 'email', 
         dataIndex : 'email', 
-        width : 120.0, 
+        width : 220.0, 
         xtype : '', 
         xtype : '', 
     },{
     },{
         text : '关联角色id', 
         text : '关联角色id', 
@@ -87,7 +87,7 @@ Ext.define('saas.view.sys.account.DataList', {
     },{
     },{
         text : '关联角色', 
         text : '关联角色', 
         dataIndex : 'roleNames', 
         dataIndex : 'roleNames', 
-        width : 120.0, 
+        flex:1,
         xtype : '', 
         xtype : '', 
     }],
     }],
 
 
@@ -188,15 +188,14 @@ Ext.define('saas.view.sys.account.DataList', {
             if(classList.indexOf('fa-pencil')>-1){
             if(classList.indexOf('fa-pencil')>-1){
                 var document = Ext.create('saas.view.document.kind.Kind',{});
                 var document = Ext.create('saas.view.document.kind.Kind',{});
                 var form = this.ownerCt;
                 var form = this.ownerCt;
-                this.dialog = form.getController().getView().add({
+                this.dialog = this.getController().getView().add({
                     xtype: 'document-kind-childwin',
                     xtype: 'document-kind-childwin',
                     bind: {
                     bind: {
-                        title: '修改单据编码规则'
+                        title: '修改账户信息'
                     },
                     },
-                    dataKind:'maxnumbers',
-                    belong:document.etc['maxnumbers'],
-                    _parent:form,
-                    _combo:this,
+                    dataKind:'accountinformation',
+                    belong:document.etc['accountinformation'],
+                    _parent:this,
                     record:record,
                     record:record,
                     session: true
                     session: true
                 });
                 });

+ 321 - 0
frontend/saas-web/app/view/sys/baseconfig/FormPanel.js

@@ -0,0 +1,321 @@
+Ext.define('saas.view.sys.baseconfig.FormPanel', {
+    extend: 'Ext.form.Panel',
+    xtype: 'sys-baseconfig-formpanel',
+
+    controller: 'sys-baseconfig-formpanel',
+    viewModel: 'sys-baseconfig-formpanel',
+    //工具类
+    FormUtil: Ext.create('saas.util.FormUtil'),
+    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    
+    //字段属性
+    _idField: 'id',
+    _readUrl:'http://192.168.253.31:8560/api/account/company/read/current',
+    _saveUrl:'http://192.168.253.31:8560/api/account/company/save',
+
+    //基础属性
+    frame:true,
+    initId: 0,
+    layout: 'vbox',
+    autoScroll: true,
+    border: 1,
+    bodyPadding: 5,
+
+    fieldDefaults: {
+        margin: '0 5 5 30',
+        labelAlign: 'right',
+        labelWidth: 90,
+        width:300,
+        blankText: '该字段不能为空'
+    },
+
+    bbar:{
+        frame:true,
+        items:['->',{
+            text:'保存',
+            formBind:true,
+            name:'save'
+        },'->']
+    },
+
+    items: [{
+        bind:'{id}',
+        xtype: 'hidden',
+        name: 'id',
+        fieldLabel: 'id',
+        allowBlank: true,
+        width:600
+    },{
+        bind:'{name}',
+        xtype: 'textfield',
+        name: 'name',
+        fieldLabel: '公司名称',
+        allowBlank: true,
+        editable:false,
+        readOnly:true,
+        width:600
+    },{
+        bind:'{address}',
+        xtype: 'textfield',
+        name: 'address',
+        fieldLabel: '公司地址',
+        beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
+        allowBlank: false,
+        width:600
+    },{
+        bind:'{tel}',
+        xtype: 'textfield',
+        name: 'tel',
+        fieldLabel: '电话',
+        beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
+        allowBlank: false,
+        width:500
+    },{
+        bind:'{fax}',
+        xtype: 'textfield',
+        name: 'fax',
+        fieldLabel: '传真',
+        allowBlank: true,
+        width:500
+    }
+    // ,{
+    //     bind:'{en_begindate}',
+    //     xtype : "datefield", 
+    //     name : "en_begindate",
+    //     format:'Y-m-d H:i:s', 
+    //     fieldLabel : "开账日期", 
+    //     allowBlank : true, 
+    //     editable:false,
+    //     hideTrigger:true,
+    //     readOnly:true,
+    //     width:500
+    // }
+    // ,{ 
+    //     bind:'{en_pricemethod}',
+    //     displayField : "display", 
+    //     editable:false,
+    //     hideTrigger : false, 
+    //     maxLength : 100.0, 
+    //     width:500,
+    //     minValue : null, 
+    //     queryMode : "local", 
+    //     valueField : "value", 
+    //     xtype : "combo",
+    //     value:'WACC',
+    //     store:{
+    //         fields: ['display', 'value'],
+    //         data : [
+    //             {"display":"加权平均法", "value":'WACC'},
+    //             {"display":"先进先出法", "value":'FIFO'}
+    //         ]
+    //     },
+    //     name : "en_pricemethod", 
+    //     beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
+    //     fieldLabel : "库存计算方式", 
+    //     allowBlank : false, 
+    // }
+    // ,{  
+    //     ignore:true,
+    //     bind:'{updateTime}',
+    //     xtype : "datefield", 
+    //     name : "updateTime", 
+    //     fieldLabel : "更新时间", 
+    //     allowBlank : true, 
+    //     hideTrigger:true,
+    //     format:'Y-m-d H:i:s',
+    //     editable:false,
+    //     readOnly:true,
+    //     width:500,
+    // }
+    ,{
+        xtype: 'form',
+		width:600,
+		frame: false,
+		border: false,
+		minHeight: 22,
+		bodyStyle: 'padding:2px;',
+        layout: 'hbox',
+        items:[{
+            bind:'{signet}',
+            name : "signet", 
+            allowBlank : true, 
+            hidden:true,
+            xtype:'numberfield'
+        },{
+            allowBlank : true, 
+            width:500,
+            fieldLabel:'打印章上传',
+            xtype: 'filefield',
+            emptyText: '请选择图片',
+            buttonText: '',
+            buttonConfig: {
+                iconCls: 'x-fa fa-picture-o',
+            },
+            createFileInput : function() {
+                    var me = this;
+                    me.fileInputEl = me.button.el.createChild({
+                    name: me.getName(),
+                    cls: Ext.baseCSSPrefix + 'form-file-input',
+                    tag: 'input',
+                    type: 'file',
+                    size: 1,
+                    accept:"image/*"
+                }).on('change', me.onFileChange, me);
+            },
+            listeners: {
+                afterrender:function(field,ops){
+                    var fileEl = field.fileInputEl.dom;
+                    fileEl.setAttribute("accept","image/*");
+                },
+                change: function(field){
+                    var form = field.ownerCt.ownerCt;
+                    var myForm = field.ownerCt;
+                    var fileEl = field.fileInputEl.dom;
+                    var fd = new FormData();
+                    fd.append('file', fileEl.files[0]);
+                    form.setLoading(true);
+                    Ext.Ajax.request({
+                        url: 'http://192.168.253.31:8560/api/file/upload',//这里是填写需要跨域访问的URL
+                        cors: true,
+                        useDefaultXhrHeader: false,
+                        method: 'post',
+                        rawData: fd,
+                        headers: {
+                            'Access-Control-Allow-Origin': '*',
+                            'Authorization':  saas.util.State.get('session').token,
+                            //"Content-Type": 'multipart/form-data'  //文件上传的格式, 
+                            "Content-Type":null
+                        },
+                        success: function (response, opts) {
+                            form.setLoading(false);
+                            showToast('上传成功');
+                            var res = Ext.decode(response.responseText);
+                            if(res.success){
+                                var data = res.data;
+                                var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
+                                myForm.down('[name=signet]').setValue(data.id);
+                                field.setRawValue(name);
+                            }else{
+                                showToast('上传失败: ' + res.message);
+                            }
+                        },
+                        failure: function (response, opts) {
+                            form.setLoading(false);
+                            var res = Ext.decode(response.responseText);
+                            showToast('上传失败: ' + res.message);
+                        }
+                    });
+                }
+            }
+        },{
+            hidden:true,
+            name:'showSignetPhoto',
+            xtype:'button',
+            iconCls: 'x-fa fa-picture-o'
+        }]
+    },{
+        xtype: 'form',
+		width:600,
+		frame: false,
+		border: false,
+		minHeight: 22,
+		bodyStyle: 'padding:2px;',
+        layout: 'hbox',
+        items:[{
+            bind:'{logoUrl}',
+            name : "logoUrl", 
+            allowBlank : true, 
+            hidden:true,
+            xtype:'numberfield'
+        },{
+            allowBlank : true, 
+            width:500,
+            fieldLabel:'Logo上传',
+            xtype: 'filefield',
+            emptyText: '请选择图片',
+            buttonText: '',
+            buttonConfig: {
+                iconCls: 'x-fa fa-picture-o',
+            },
+            createFileInput : function() {
+                    var me = this;
+                    me.fileInputEl = me.button.el.createChild({
+                    name: me.getName(),
+                    cls: Ext.baseCSSPrefix + 'form-file-input',
+                    tag: 'input',
+                    type: 'file',
+                    size: 1,
+                    accept:"image/*"
+                }).on('change', me.onFileChange, me);
+            },
+            listeners: {
+                change: function(field){
+                    var form = field.ownerCt.ownerCt;
+                    var myForm = field.ownerCt;
+                    var fileEl = field.fileInputEl.dom;
+                    var fd = new FormData();
+                    fd.append('file', fileEl.files[0]);
+                    form.setLoading(true);
+                    Ext.Ajax.request({
+                        url: 'http://192.168.253.31:8560/api/file/upload',//这里是填写需要跨域访问的URL
+                        cors: true,
+                        useDefaultXhrHeader: false,
+                        method: 'post',
+                        rawData: fd,
+                        headers: {
+                            'Access-Control-Allow-Origin': '*',
+                            'Authorization':  saas.util.State.get('session').token,
+                            //"Content-Type": 'multipart/form-data'  //文件上传的格式, 
+                            "Content-Type":null
+                        },
+                        success: function (response, opts) {
+                            form.setLoading(false);
+                            showToast('上传成功');
+                            var res = Ext.decode(response.responseText);
+                            if(res.success){
+                                var data = res.data;
+                                var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
+                                myForm.down('[name=logoUrl]').setValue(data.id);
+                                field.setRawValue(name);
+                            }else{
+                                showToast('上传失败: ' + res.message);
+                            }
+                        },
+                        failure: function (response, opts) {
+                            form.setLoading(false);
+                            var res = Ext.decode(response.responseText);
+                            showToast('上传失败: ' + res.message);
+                        }
+                    });
+                }
+            }
+        },{
+            hidden:true,
+            name:'showLogoPhoto',
+            xtype:'button',
+            iconCls: 'x-fa fa-picture-o'
+        }]
+    }],
+
+    initComponent: function () {
+        var me = this,
+        viewModel = me.getViewModel();
+        var url = me._readUrl;
+        me.BaseUtil.request({url })
+        .then(function(res) {
+            if(res.success) {
+                var d = res.data;
+                viewModel.setData(d)
+            }
+        })
+        .catch(function(response) {
+            console.error(response);
+        });
+
+        me.callParent(arguments);
+    },
+
+    refresh:function(){
+        this.ownerCt.setTitle('参数设置')
+    }
+});

+ 66 - 0
frontend/saas-web/app/view/sys/baseconfig/FormPanelController.js

@@ -0,0 +1,66 @@
+Ext.define('saas.view.sys.baseconfig.FormPanelController', {
+    extend: 'Ext.app.ViewController',
+    alias: 'controller.sys-baseconfig-formpanel',
+
+    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    FormUtil: Ext.create('saas.util.FormUtil'),
+
+    init: function (form) {
+        var me = this;
+        this.control({
+            'button[name=save]':{
+                click:function(){
+                    me.onSave();
+                }
+            }
+        });
+    },
+
+    onSave: function() {
+        var me = this,
+        form = this.getView();
+
+        var valid = form.isValid();
+        if(!valid) {
+            showToast('表单校验有误,请检查');
+            return false;
+        }
+
+        if(form.getForm().wasDirty==false){
+            showToast('未修改数据,请修改后保存');
+            return false;
+        }
+        
+        viewModel = me.getViewModel();
+        var formData = viewModel.data;
+        formData.en_name = null;
+        formData.updateTime = null;
+        me.BaseUtil.request({
+            url: form._saveUrl,
+            params: JSON.stringify(formData),
+            method: 'POST',
+        })
+        .then(function(localJson) {
+            if(localJson.success){
+                showToast('保存成功');
+                viewModel = form.getViewModel();
+                var url = form._readUrl;
+                form.BaseUtil.request({url })
+                .then(function(res) {
+                    if(res.success) {
+                        var d = res.data;
+                        viewModel.setData(d)
+                    }
+                })
+                .catch(function(response) {
+                    console.error(response);
+                });
+            }
+        })
+        .catch(function(res) {
+            console.error(res);
+            showToast('保存失败: ' + res.message);
+        });
+    }
+
+});

+ 5 - 0
frontend/saas-web/app/view/sys/baseconfig/FormPanelModel.js

@@ -0,0 +1,5 @@
+Ext.define('saas.view.sys.baseconfig.FormPanelModel', {
+    extend: 'Ext.app.ViewModel',
+    alias: 'viewmodel.sys-baseconfig-formpanel',
+
+});

+ 232 - 82
frontend/saas-web/app/view/sys/config/FormPanel.js

@@ -10,8 +10,8 @@ Ext.define('saas.view.sys.config.FormPanel', {
     
     
     //字段属性
     //字段属性
     _idField: 'id',
     _idField: 'id',
-    _readUrl:'/api/commons/enterprise/read',
-    _saveUrl:'/api/commons/enterprise/save',
+    _readUrl:'http://192.168.253.31:8560/api/account/company/read/current',
+    _saveUrl:'http://192.168.253.31:8560/api/account/company/save',
 
 
     //基础属性
     //基础属性
     frame:true,
     frame:true,
@@ -39,116 +39,266 @@ Ext.define('saas.view.sys.config.FormPanel', {
     },
     },
 
 
     items: [{
     items: [{
-        bind:'{companyId}',
+        bind:'{id}',
         xtype: 'hidden',
         xtype: 'hidden',
-        name: 'companyId',
+        name: 'id',
         fieldLabel: 'id',
         fieldLabel: 'id',
         allowBlank: true,
         allowBlank: true,
         width:600
         width:600
     },{
     },{
-        bind:'{en_name}',
+        bind:'{name}',
         xtype: 'textfield',
         xtype: 'textfield',
-        name: 'en_name',
+        name: 'name',
         fieldLabel: '公司名称',
         fieldLabel: '公司名称',
         allowBlank: true,
         allowBlank: true,
         editable:false,
         editable:false,
         readOnly:true,
         readOnly:true,
         width:600
         width:600
     },{
     },{
-        bind:'{en_address}',
+        bind:'{address}',
         xtype: 'textfield',
         xtype: 'textfield',
-        name: 'en_address',
+        name: 'address',
         fieldLabel: '公司地址',
         fieldLabel: '公司地址',
         beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
         beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
         allowBlank: false,
         allowBlank: false,
         width:600
         width:600
     },{
     },{
-        bind:'{en_tel}',
+        bind:'{tel}',
         xtype: 'textfield',
         xtype: 'textfield',
-        name: 'en_tel',
+        name: 'tel',
         fieldLabel: '电话',
         fieldLabel: '电话',
         beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
         beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
         allowBlank: false,
         allowBlank: false,
         width:500
         width:500
     },{
     },{
-        bind:'{en_fax}',
+        bind:'{fax}',
         xtype: 'textfield',
         xtype: 'textfield',
-        name: 'en_fax',
+        name: 'fax',
         fieldLabel: '传真',
         fieldLabel: '传真',
         allowBlank: true,
         allowBlank: true,
         width:500
         width:500
-    },{
-        bind:'{en_begindate}',
-        xtype : "datefield", 
-        name : "en_begindate",
-        format:'Y-m-d H:i:s', 
-        fieldLabel : "开账日期", 
-        allowBlank : true, 
-        editable:false,
-        hideTrigger:true,
-        readOnly:true,
-        width:500
-    },{ 
-        bind:'{en_pricemethod}',
-        displayField : "display", 
-        editable:false,
-        hideTrigger : false, 
-        maxLength : 100.0, 
-        width:500,
-        minValue : null, 
-        queryMode : "local", 
-        valueField : "value", 
-        xtype : "combo",
-        value:'WACC',
-        store:{
-            fields: ['display', 'value'],
-            data : [
-                {"display":"加权平均法", "value":'WACC'},
-                {"display":"先进先出法", "value":'FIFO'}
-            ]
-        },
-        name : "en_pricemethod", 
-        beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
-        fieldLabel : "库存计算方式", 
-        allowBlank : false, 
-    },{  
-        bind:'{en_signet}',
-        name : "en_signet", 
-        fieldLabel : "打印章上传", 
-        allowBlank : false, 
-        width:500,
-        xtype: 'filefield',
-        beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
-        emptyText: '请选择图片',
-        buttonText: '',
-        buttonConfig: {
+    }
+    // ,{
+    //     bind:'{en_begindate}',
+    //     xtype : "datefield", 
+    //     name : "en_begindate",
+    //     format:'Y-m-d H:i:s', 
+    //     fieldLabel : "开账日期", 
+    //     allowBlank : true, 
+    //     editable:false,
+    //     hideTrigger:true,
+    //     readOnly:true,
+    //     width:500
+    // }
+    // ,{ 
+    //     bind:'{en_pricemethod}',
+    //     displayField : "display", 
+    //     editable:false,
+    //     hideTrigger : false, 
+    //     maxLength : 100.0, 
+    //     width:500,
+    //     minValue : null, 
+    //     queryMode : "local", 
+    //     valueField : "value", 
+    //     xtype : "combo",
+    //     value:'WACC',
+    //     store:{
+    //         fields: ['display', 'value'],
+    //         data : [
+    //             {"display":"加权平均法", "value":'WACC'},
+    //             {"display":"先进先出法", "value":'FIFO'}
+    //         ]
+    //     },
+    //     name : "en_pricemethod", 
+    //     beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
+    //     fieldLabel : "库存计算方式", 
+    //     allowBlank : false, 
+    // }
+    // ,{  
+    //     ignore:true,
+    //     bind:'{updateTime}',
+    //     xtype : "datefield", 
+    //     name : "updateTime", 
+    //     fieldLabel : "更新时间", 
+    //     allowBlank : true, 
+    //     hideTrigger:true,
+    //     format:'Y-m-d H:i:s',
+    //     editable:false,
+    //     readOnly:true,
+    //     width:500,
+    // }
+    ,{
+        xtype: 'form',
+		width:600,
+		frame: false,
+		border: false,
+		minHeight: 22,
+		bodyStyle: 'padding:2px;',
+        layout: 'hbox',
+        items:[{
+            bind:'{signet}',
+            name : "signet", 
+            allowBlank : true, 
+            hidden:true,
+            xtype:'numberfield'
+        },{
+            allowBlank : true, 
+            width:500,
+            fieldLabel:'打印章上传',
+            xtype: 'filefield',
+            emptyText: '请选择图片',
+            buttonText: '',
+            buttonConfig: {
+                iconCls: 'x-fa fa-picture-o',
+            },
+            createFileInput : function() {
+                    var me = this;
+                    me.fileInputEl = me.button.el.createChild({
+                    name: me.getName(),
+                    cls: Ext.baseCSSPrefix + 'form-file-input',
+                    tag: 'input',
+                    type: 'file',
+                    size: 1,
+                    accept:"image/*"
+                }).on('change', me.onFileChange, me);
+            },
+            listeners: {
+                afterrender:function(field,ops){
+                    var fileEl = field.fileInputEl.dom;
+                    fileEl.setAttribute("accept","image/*");
+                },
+                change: function(field){
+                    var form = field.ownerCt.ownerCt;
+                    var myForm = field.ownerCt;
+                    var fileEl = field.fileInputEl.dom;
+                    var fd = new FormData();
+                    fd.append('file', fileEl.files[0]);
+                    form.setLoading(true);
+                    Ext.Ajax.request({
+                        url: 'http://192.168.253.31:8560/api/file/upload',//这里是填写需要跨域访问的URL
+                        cors: true,
+                        useDefaultXhrHeader: false,
+                        method: 'post',
+                        rawData: fd,
+                        headers: {
+                            'Access-Control-Allow-Origin': '*',
+                            'Authorization':  saas.util.State.get('session').token,
+                            //"Content-Type": 'multipart/form-data'  //文件上传的格式, 
+                            "Content-Type":null
+                        },
+                        success: function (response, opts) {
+                            form.setLoading(false);
+                            showToast('上传成功');
+                            var res = Ext.decode(response.responseText);
+                            if(res.success){
+                                var data = res.data;
+                                var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
+                                myForm.down('[name=signet]').setValue(data.id);
+                                field.setRawValue(name);
+                            }else{
+                                showToast('上传失败: ' + res.message);
+                            }
+                        },
+                        failure: function (response, opts) {
+                            form.setLoading(false);
+                            var res = Ext.decode(response.responseText);
+                            showToast('上传失败: ' + res.message);
+                        }
+                    });
+                }
+            }
+        },{
+            hidden:true,
+            name:'showSignetPhoto',
+            xtype:'button',
             iconCls: 'x-fa fa-picture-o'
             iconCls: 'x-fa fa-picture-o'
-        }
-    },{  
-        bind:'{en_logo}',
-        name : "en_logo", 
-        fieldLabel : "Logo上传", 
-        allowBlank : false, 
-        width:500,
-        xtype: 'filefield',
-        beforeLabelTextTpl : "<font color=\"red\" style=\"position:relative; top:2px;right:2px; font-weight: bolder;\">*</font>",
-        emptyText: '请选择图片',
-        buttonText: '',
-        buttonConfig: {
+        }]
+    },{
+        xtype: 'form',
+		width:600,
+		frame: false,
+		border: false,
+		minHeight: 22,
+		bodyStyle: 'padding:2px;',
+        layout: 'hbox',
+        items:[{
+            bind:'{logoUrl}',
+            name : "logoUrl", 
+            allowBlank : true, 
+            hidden:true,
+            xtype:'numberfield'
+        },{
+            allowBlank : true, 
+            width:500,
+            fieldLabel:'Logo上传',
+            xtype: 'filefield',
+            emptyText: '请选择图片',
+            buttonText: '',
+            buttonConfig: {
+                iconCls: 'x-fa fa-picture-o',
+            },
+            createFileInput : function() {
+                    var me = this;
+                    me.fileInputEl = me.button.el.createChild({
+                    name: me.getName(),
+                    cls: Ext.baseCSSPrefix + 'form-file-input',
+                    tag: 'input',
+                    type: 'file',
+                    size: 1,
+                    accept:"image/*"
+                }).on('change', me.onFileChange, me);
+            },
+            listeners: {
+                afterrender:function(field,ops){
+                    var fileEl = field.fileInputEl.dom;
+                    fileEl.setAttribute("accept","image/*");
+                },
+                change: function(field){
+                    var form = field.ownerCt.ownerCt;
+                    var myForm = field.ownerCt;
+                    var fileEl = field.fileInputEl.dom;
+                    var fd = new FormData();
+                    fd.append('file', fileEl.files[0]);
+                    form.setLoading(true);
+                    Ext.Ajax.request({
+                        url: 'http://192.168.253.31:8560/api/file/upload',//这里是填写需要跨域访问的URL
+                        cors: true,
+                        useDefaultXhrHeader: false,
+                        method: 'post',
+                        rawData: fd,
+                        headers: {
+                            'Access-Control-Allow-Origin': '*',
+                            'Authorization':  saas.util.State.get('session').token,
+                            //"Content-Type": 'multipart/form-data'  //文件上传的格式, 
+                            "Content-Type":null
+                        },
+                        success: function (response, opts) {
+                            form.setLoading(false);
+                            showToast('上传成功');
+                            var res = Ext.decode(response.responseText);
+                            if(res.success){
+                                var data = res.data;
+                                var name = data.name + "  (" + Ext.util.Format.fileSize(data.size) + ")";
+                                myForm.down('[name=logoUrl]').setValue(data.id);
+                                field.setRawValue(name);
+                            }else{
+                                showToast('上传失败: ' + res.message);
+                            }
+                        },
+                        failure: function (response, opts) {
+                            form.setLoading(false);
+                            var res = Ext.decode(response.responseText);
+                            showToast('上传失败: ' + res.message);
+                        }
+                    });
+                }
+            }
+        },{
+            hidden:true,
+            name:'showLogoPhoto',
+            xtype:'button',
             iconCls: 'x-fa fa-picture-o'
             iconCls: 'x-fa fa-picture-o'
-        }
-    },{  
-        ignore:true,
-        bind:'{updateTime}',
-        xtype : "datefield", 
-        name : "updateTime", 
-        fieldLabel : "更新时间", 
-        allowBlank : true, 
-        hideTrigger:true,
-        format:'Y-m-d H:i:s',
-        editable:false,
-        readOnly:true,
-        width:500,
+        }]
     }],
     }],
 
 
     initComponent: function () {
     initComponent: function () {

+ 5 - 0
frontend/saas-web/app/view/sys/manager/FormPanel.js

@@ -38,6 +38,11 @@ Ext.define('saas.view.sys.manager.FormPanel', {
         iconCls:'x-fa fa-user-circle-o',
         iconCls:'x-fa fa-user-circle-o',
         title: '权限设置',
         title: '权限设置',
         xtype:'sys-power-formpanel'
         xtype:'sys-power-formpanel'
+    },{
+        cls:'sys-config-formpanel',
+        iconCls:'x-fa fa-cog',
+        title: '参数设置',
+        xtype:'sys-baseconfig-formpanel'
     }],
     }],
 
 
     initComponent: function () {
     initComponent: function () {