hy 7 rokov pred
rodič
commit
cd5ce0e5fb

+ 2 - 2
frontend/saas-web/app/view/document/bom/FormController.js

@@ -16,7 +16,7 @@ Ext.define('saas.view.document.bom.FormController', {
         status == 'OPEN' ? me.unAudit() : me.audit();
     },
 
-    unAudit: function(){
+    audit: function(){
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();
@@ -39,7 +39,7 @@ Ext.define('saas.view.document.bom.FormController', {
             showToast('启用失败: ' + res.message);
         });
     },
-    audit: function() {
+    unAudit: function() {
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();

+ 38 - 8
frontend/saas-web/app/view/document/bom/FormPanel.js

@@ -22,6 +22,37 @@ Ext.define('saas.view.document.bom.FormPanel', {
 
     codeInHeader: false,
 
+    defaultButtons:[{
+        cls: 'x-formpanel-btn-orange',
+        xtype: 'button',
+        text: '新增',
+        bind: {
+            hidden: '{!id}'
+        },
+        handler: 'add'
+    }, {
+        xtype: 'button',
+        text: '保存',
+        handler: 'onSave',
+        bind: {
+            // disabled: '{!base.valid || '+ me._statusCodeField + ' == "AUDITED" || ' + me._statusCodeField + ' == "OPEN"}'
+            disabled: '{!base.valid || '+ me._statusCodeField + ' == "' + me.auditTexts.auditCode + '"}'
+        }
+    }, {
+        xtype: 'button',
+        text: '删除',
+        bind: {
+            hidden: '{deleteHidden || ' + me._statusCodeField + '=="' + me.auditTexts.auditCode + '"}'
+        },
+        handler: 'delete'
+    }, {
+        xtype: 'button',
+        bind: {
+            text: '{auditBtnText}'
+        },
+        handler: "auditBtnClick",
+    }],
+
     defaultItems: [{
         xtype: 'hidden',
         name: 'id',
@@ -106,12 +137,11 @@ Ext.define('saas.view.document.bom.FormPanel', {
     }],
 
     auditTexts: {
-        auditCode: 'CLOSE',
-        auditText: '已关闭',
-        unAuditCode: 'OPEN',
-        unAuditText: '已开启',
-        auditBtnText: '关闭',
-        unAuditBtnText: '启用',
-    },
-
+        auditCode: 'OPEN',
+        auditText: '已开启',
+        unAuditCode: 'CLOSE',
+        unAuditText: '已关闭',
+        auditBtnText: '启用',
+        unAuditBtnText: '关闭',
+    }
 });

+ 2 - 2
frontend/saas-web/app/view/document/customer/FormController.js

@@ -16,7 +16,7 @@ Ext.define('saas.view.document.customer.FormController', {
         status == 'OPEN' ? me.unAudit() : me.audit();
     },
 
-    unAudit: function(){
+    audit: function(){
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();
@@ -39,7 +39,7 @@ Ext.define('saas.view.document.customer.FormController', {
             showToast('启用失败: ' + res.message);
         });
     },
-    audit: function() {
+    unAudit: function() {
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();

+ 6 - 6
frontend/saas-web/app/view/document/customer/FormPanel.js

@@ -337,11 +337,11 @@ Ext.define('saas.view.document.customer.FormPanel', {
             }]
     }],
     auditTexts: {
-        auditCode: 'CLOSE',
-        auditText: '已关闭',
-        unAuditCode: 'OPEN',
-        unAuditText: '已开启',
-        auditBtnText: '关闭',
-        unAuditBtnText: '启用',
+        auditCode: 'OPEN',
+        auditText: '已开启',
+        unAuditCode: 'CLOSE',
+        unAuditText: '已关闭',
+        auditBtnText: '启用',
+        unAuditBtnText: '关闭',
     },
 });

+ 2 - 2
frontend/saas-web/app/view/document/product/FormController.js

@@ -141,7 +141,7 @@ Ext.define('saas.view.document.product.FormController', {
         status == 'OPEN' ? me.unAudit() : me.audit();
     },
 
-    unAudit: function(){
+    audit: function(){
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();
@@ -164,7 +164,7 @@ Ext.define('saas.view.document.product.FormController', {
             showToast('启用失败: ' + res.message);
         });
     },
-    audit: function() {
+    unAudit: function() {
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();

+ 6 - 6
frontend/saas-web/app/view/document/product/FormPanel.js

@@ -179,11 +179,11 @@ Ext.define('saas.view.document.product.FormPanel', {
     }],
 
     auditTexts: {
-        auditCode: 'CLOSE',
-        auditText: '已关闭',
-        unAuditCode: 'OPEN',
-        unAuditText: '已开启',
-        auditBtnText: '关闭',
-        unAuditBtnText: '启用',
+        auditCode: 'OPEN',
+        auditText: '已开启',
+        unAuditCode: 'CLOSE',
+        unAuditText: '已关闭',
+        auditBtnText: '启用',
+        unAuditBtnText: '关闭',
     },
 });

+ 2 - 2
frontend/saas-web/app/view/document/vendor/FormController.js

@@ -15,7 +15,7 @@ Ext.define('saas.view.document.vendor.FormController', {
         status == 'OPEN' ? me.unAudit() : me.audit();
     },
 
-    unAudit: function(){
+    audit: function(){
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();
@@ -38,7 +38,7 @@ Ext.define('saas.view.document.vendor.FormController', {
             showToast('启用失败: ' + res.message);
         });
     },
-    audit: function() {
+    unAudit: function() {
         var me = this,
         form = this.getView(),
         viewModel = me.getViewModel();

+ 6 - 6
frontend/saas-web/app/view/document/vendor/FormPanel.js

@@ -238,11 +238,11 @@ Ext.define('saas.view.document.vendor.FormPanel', {
     ],
 
     auditTexts: {
-        auditCode: 'CLOSE',
-        auditText: '已关闭',
-        unAuditCode: 'OPEN',
-        unAuditText: '已开启',
-        auditBtnText: '关闭',
-        unAuditBtnText: '启用',
+        auditCode: 'OPEN',
+        auditText: '已开启',
+        unAuditCode: 'CLOSE',
+        unAuditText: '已关闭',
+        auditBtnText: '启用',
+        unAuditBtnText: '关闭',
     },
 });

+ 108 - 0
frontend/saas-web/app/view/sys/config/FormPanel.js

@@ -0,0 +1,108 @@
+Ext.define('saas.view.sys.config.FormPanel', {
+    extend: 'Ext.form.Panel',
+    xtype: 'sys-config-formpanel',
+
+    controller: 'sys-config-formpanel',
+    viewModel: 'sys-config-formpanel',
+    
+    //字段属性
+    _idField: 'id',
+    _readUrl:'/api/document/vendor/read/',
+    _saveUrl:'/api/document/vendor/save',
+
+    //基础属性
+    frame:true,
+    initId: 0,
+    layout: 'column',
+    autoScroll: true,
+    border: 1,
+    bodyPadding: 5,
+
+    fieldDefaults: {
+        margin: '0 5 5 0',
+        labelAlign: 'right',
+        labelWidth: 90,
+        columnWidth: 0.25,
+        blankText: '该字段不能为空'
+    },
+    
+    tbar:[{
+        text:'保存',
+        handler:function(){
+
+        }
+    }],
+
+    items: [{
+        xtype: 'hidden',
+        name: 'id',
+        fieldLabel: 'id',
+        allowBlank: true,
+        columnWidth: 0.25
+    },{
+        xtype: 'textfield',
+        name: 'en_name',
+        fieldLabel: '公司名称',
+        allowBlank: false,
+        columnWidth: 0.5
+    },{
+        xtype: 'textfield',
+        name: 'en_address',
+        fieldLabel: '公司地址',
+        allowBlank: true,
+        columnWidth: 0.5
+    },{
+        xtype: 'textfield',
+        name: 'en_tel',
+        fieldLabel: '电话',
+        allowBlank: true,
+        columnWidth: 0.25
+    },{
+        xtype: 'textfield',
+        name: 'en_fax',
+        fieldLabel: '传真',
+        allowBlank: true,
+        columnWidth: 0.5
+    },{
+        xtype : "datefield", 
+        name : "en_begindate", 
+        fieldLabel : "开账日期", 
+        allowBlank : true, 
+        editable:false,
+        columnWidth : 0.25
+    },{ 
+        displayField : "display", 
+        editable:false,
+        hideTrigger : false, 
+        maxLength : 100.0, 
+        minValue : null, 
+        queryMode : "local", 
+        valueField : "value", 
+        xtype : "combo",
+        store:{
+            fields: ['display', 'value'],
+            data : [
+                {"display":"加权平均法", "value":'1'},
+                {"display":"先进先出法", "value":'0'}
+            ]
+        },
+        name : "en_pricemethod", 
+        fieldLabel : "库存计算方式", 
+        allowBlank : false, 
+        columnWidth : 0.25
+    },{  
+        xtype : "textfield", 
+        name : "en_signet", 
+        fieldLabel : "打印章上传", 
+        allowBlank : true, 
+        editable:false,
+        columnWidth : 0.25
+    },{  
+        xtype : "datefield", 
+        name : "updateTime", 
+        fieldLabel : "更新时间", 
+        allowBlank : true, 
+        editable:false,
+        columnWidth : 0.25
+    }]
+});

+ 223 - 0
frontend/saas-web/app/view/sys/config/FormPanelController.js

@@ -0,0 +1,223 @@
+Ext.define('saas.view.sys.config.FormPanelController', {
+    extend: 'Ext.app.ViewController',
+    alias: 'controller.sys-config-formpanel',
+
+    BaseUtil: Ext.create('saas.util.BaseUtil'),
+    FormUtil: Ext.create('saas.util.FormUtil'),
+
+    auditBtnClick: function() {
+        var me = this,
+        form = me.getView(),
+        statusCodeField = form._statusCodeField,
+        viewModel = me.getViewModel(),
+        status = viewModel.get(statusCodeField);
+
+        status == 'AUDITED' ? me.unAudit() : me.audit();
+    },
+
+    add: function(){
+        var form = this.getView();
+        var id = form.xtype + '-add';
+        openTab(form.xtype,'新增' + form._title, id);
+    },
+    
+    delete: function(){
+        var me = this;
+        var form = this.getView();
+        var viewModel = me.getViewModel();
+        var id = viewModel.get(form._idField);
+        var code = viewModel.get(form._codeField);
+        if(id&&id.value!=0){
+            me.BaseUtil.request({
+                url: form._deleteUrl+id,
+                method: 'POST',
+            })
+            .then(function(localJson) {
+                if(localJson.success){
+                    var mainTab = Ext.getCmp('main-tab-panel');
+                    mainTab.getActiveTab().close();
+                    //解析参数
+                    showToast('删除成功');
+                }
+            })
+            .catch(function(res) {
+                console.error(res);
+                showToast('删除失败: ' + res.message);
+            });
+        }
+    },
+
+    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;
+        }
+        //form里面数据
+        var formData = form.getFormData();
+        
+        me.save(formData);
+    },
+
+    save:function(formData){
+        var me = this,
+        form = this.getView(),
+        detailCount = form.detailCount,
+        viewModel = me.getViewModel(),
+        modelData = viewModel.getData();
+
+        var params = {
+            main:formData.main
+        };
+
+        for(var i = 0; i < detailCount; i++) {
+            params['items' + ( i + 1)] = formData['detail' + i];
+        }
+
+        // 只有一个从表时从表字段改为items
+        if(detailCount == 1) {
+            params.items = params.items1;
+            delete params.items1;
+        }
+
+        me.BaseUtil.request({
+            url: form._saveUrl,
+            params: JSON.stringify(params),
+            method: 'POST',
+        })
+        .then(function(localJson) {
+            if(localJson.success){
+                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) {
+            console.error(res);
+            showToast('保存失败: ' + res.message);
+        });
+    },
+
+    audit: function(){
+        var me = this,
+        form = this.getView(),
+        detailCount = form.detailCount,
+        viewModel = me.getViewModel(),
+        modelData = viewModel.getData();
+
+        var valid = form.isValid();
+
+        if(!valid) {
+            showToast('表单校验有误,请检查');
+            return false;
+        }
+        
+        if(form.getForm().wasDirty==false){
+            showToast('未修改数据,请修改后保存');
+            return false;
+        }
+        //form里面数据
+        var formData = form.getFormData();
+        var params = {
+            main: formData.main
+        };
+
+        for(var i = 0; i < detailCount; i++) {
+            params['items' + ( i + 1)] = formData['detail' + i];
+        }
+
+        // 只有一个从表时从表字段改为items
+        if(detailCount == 1) {
+            params.items = params.items1;
+            delete params.items1;
+        }
+
+        me.BaseUtil.request({
+            url: form._auditUrl,
+            params: JSON.stringify(params),
+            method: 'POST',
+        })
+        .then(function(localJson) {
+            if(localJson.success){
+                // 未保存直接审核会返回id
+                if(localJson.data) {
+                    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);
+                showToast('审核成功');
+            }
+        })
+        .catch(function(res) {
+            console.error(res);
+            showToast('审核失败: ' + res.message);
+        });
+    },
+    unAudit: function() {
+        var me = this;
+        var form = this.getView();
+        var viewModel = me.getViewModel();
+        var id = viewModel.get(form._idField);
+        var code = viewModel.get(form._codeField);
+        if(id&&id.value!=0){
+            me.BaseUtil.request({
+                url: form._unAuditUrl+id,
+                method: 'POST',
+            })
+            .then(function(localJson) {
+                if(localJson.success){
+                    //解析参数
+                    showToast('反审核成功');
+                    form.FormUtil.loadData(form);
+                }
+            })
+            .catch(function(res) {
+                console.error(res);
+                showToast('反审核失败: ' + res.message);
+            });
+        }
+    },
+    codeEditorBlur: function(e) {
+        var me = this,
+        viewModel = me.getViewModel(),
+        targetEl = event.target,
+        faEl = targetEl.getElementsByClassName('fa')[0];
+
+        if(faEl && faEl.classList.contains('fa-check-circle')) {
+            // 处理重复触发事件
+            // viewModel.set('base.codeEditable', false);
+        }else {
+            viewModel.set('base.codeEditable', false);
+        }
+    },
+    codeEditorClick: function() {
+        var me = this,
+        viewModel = me.getViewModel(),
+        codeEditable = viewModel.get('base.codeEditable');
+
+        viewModel.set('base.codeEditable', !codeEditable);
+    }
+});

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

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

+ 5 - 0
frontend/saas-web/resources/json/navigation.json

@@ -266,6 +266,11 @@
             "text": "结账/反结账",
             "viewType": "sys-finish-datalist",
             "leaf": true
+        },{
+            "id":"sys-config-formpanel",
+            "text": "参数设置",
+            "viewType": "sys-config-formpanel",
+            "leaf": true
         }]
     }]
 }]