/** * Created by zhouy on 2018/10/18. */ Ext.define('KitchenSink.view.binding.ChildForm', { extend: 'Ext.window.Window', xtype: 'document-kind-childwin', layout: 'fit', modal: true, width: 500, //工具类 height: 260, listeners:{ show:function(w){ if(w.record){ w.down('form').loadRecord(w.record); } } }, initComponent:function(){ var me=this; Ext.apply(me,{ items:me.setFormItems() }); me.callParent(); }, etc:{ customerkind:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'ck_name', allowBlank:false, fieldLabel:'客户类型', maxLength: 20 }] }, vendorkind:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'vk_name', allowBlank:false, fieldLabel:'供应商类型', maxLength: 20 }] }, productkind:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'pt_name', allowBlank:false, fieldLabel:'物料类型', maxLength: 20 }] }, personpower:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'name', allowBlank:false, fieldLabel:'角色名称', maxLength: 20 },{ xtype:'textfield', name:'description', allowBlank:false, fieldLabel:'角色描述', maxLength: 20 },{ xtype:'textfield', hidden:true, name:'code', allowBlank:true, fieldLabel:'角色编号', maxLength: 20 }] }, bankinformation:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'bk_bankcode', allowBlank:false, fieldLabel:'账户编号', maxLength: 20 },{ xtype:'textfield', name:'bk_bankname', allowBlank:false, fieldLabel:'账户名称', maxLength: 20 },{ xtype:'numberfield', name:'bk_beginamount', allowBlank:false, fieldLabel:'期初金额', hideTrigger: true, mouseWheelEnabled: false, minValue: 0 }, // { // xtype:'numberfield', // name:'bk_thisamount', // allowBlank:true, // fieldLabel:'当前余额', // hideTrigger: true, // mouseWheelEnabled: false, // beforeLabelTextTpl:'', // minValue: 0 // } // , { xtype:'combo', name:'bk_type', allowBlank:false, editable:false, fieldLabel:'账户类别', store: [ '现金', '银行' ] },{ xtype:'datefield', name:'bk_date', fieldLabel:'建账日期', format:'Y-m-d H:i:s', listeners:{ beforerender:function(d){ d.setValue(new Date()) } } }, { xtype:'textfield', name:'bk_remark', allowBlank:true, fieldLabel:'备注', beforeLabelTextTpl:'' }] }, productbrand:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'pb_name', allowBlank:false, fieldLabel:'物料品牌', maxLength: 20 }] }, productunit:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'pu_name', allowBlank:false, fieldLabel:'计量单位', maxLength: 20 }] }, inoutkind:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'ft_name', allowBlank:false, fieldLabel:'收支名称', maxLength: 20 },{ xtype:'combo', name:'ft_kind', allowBlank:false, fieldLabel:'收支类型', hideTrigger : false, maxLength : 100.0, minValue : null, positiveNum : false, queryMode : "local", valueField : "value", xtype : "combo", editable:false, displayField : "display", store:{ fields: ['display', 'value'], data : [ {"display":"收入", "value":'收入'}, {"display":"支出", "value":'支出'} ] } }] }, address:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', name:'ad_address', allowBlank:false, fieldLabel:'地址详情', maxLength: 200 }] }, accountinformation:{ items:[{ xtype:'hidden', name:'accountId', hidden:true, },{ xtype:'textfield', fieldLabel: '真实姓名', name: 'realname', readOnly:true, editable:false, allowBlank:true, maxLength: 30, beforeLabelTextTpl: "", },{ xtype:'datamulticombo', dataUrl:'/api/account/role/list', fieldLabel: '关联角色', name: 'roleNames', allowBlank:true, maxLength: 20, beforeLabelTextTpl: "", },{ xtype:'textfield', fieldLabel: '联系电话', name: 'mobile', readOnly:true, editable:false, allowBlank:true, maxLength: 30, beforeLabelTextTpl: "", },{ xtype:'textfield', fieldLabel: '联系邮件', name: 'email', readOnly:true, editable:false, allowBlank:true, maxLength: 30, beforeLabelTextTpl: "", }] }, warehouse:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', fieldLabel: '仓库编号', name: 'wh_code', allowBlank:false, maxLength: 20 },{ xtype:'textfield', fieldLabel: '仓库名称', name: 'wh_description', allowBlank:false, maxLength: 20 },{ xtype:'combo', fieldLabel: '仓库类型', name: 'wh_type', allowBlank:false, displayField : "display", editable:false, hideTrigger : false, maxLength : 100.0, minValue : null, positiveNum : false, queryMode : "local", valueField : "value", store:{ fields: ['display', 'value'], data : [ {"display":"良品仓", "value":'良品仓'}, {"display":"不良品仓", "value":'不良品仓'} ] } },{ readOnly:true, xtype:'textfield', fieldLabel: '仓库状态', name: 'wh_status', value:'已开启', maxLength: 20 },{ xtype:'hidden', fieldLabel: '仓库状态码', name: 'wh_statuscode', value:'OPEN' }] }, employee:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', fieldLabel: '人员编号', name: 'em_code', allowBlank:false, maxLength: 20 },{ xtype:'textfield', fieldLabel: '人员名称', name: 'em_name', allowBlank:false, maxLength: 20 },{ xtype:'textfield', fieldLabel: '联系电话', name: 'em_mobile', allowBlank:false, maxLength: 20 },{ xtype:'textfield', fieldLabel: '邮箱', name: 'em_email', allowBlank:false, maxLength: 20 },{ value:'正式', xtype:'combo', fieldLabel: '人员状态', name: 'em_class', allowBlank:false, displayField : "display", editable:false, hideTrigger : false, maxLength : 100.0, minValue : null, positiveNum : false, queryMode : "local", valueField : "value", store:{ fields: ['display', 'value'], data : [ {"display":"正式", "value":'正式'}, {"display":"离职", "value":'离职'} ] } },] }, maxnumbers:{ items:[{ xtype:'hidden', name:'id' },{ xtype:'textfield', fieldLabel: '单据名称', name: 'mn_name', allowBlank:false, editable:false, readOnly:true, maxLength: 20 },{ xtype:'textfield', fieldLabel: '单据前缀', name: 'mn_leadcode', beforeLabelTextTpl: '', allowBlank:true, maxLength: 20 },{ xtype:'combo', fieldLabel: '单据规则', name: 'mn_rule', displayField : "display", editable:false, hideTrigger : false, maxLength : 100.0, minValue : null, positiveNum : false, queryMode : "local", valueField : "value", store:{ fields: ['display', 'value'], data : [ {"display":"年月日", "value":'yyyymmdd'}, {"display":"年月", "value":'yyyymm'}, {"display":"无", "value":'无'} ] } },{ xtype:'numberfield', hideTrigger : true, fieldLabel: '流水长度', name: 'mn_number', minValue : 0, allowBlank:false, mouseWheelEnabled: false }] } }, setFormItems:function() { var me = this, kind = me.dataKind; var conf = { xtype: 'form', bodyPadding: 10, border: false, autoScroll:true, modelValidation: true, layout: { type: 'vbox', align: 'stretch' }, defaults: { labelAlign:'right', beforeLabelTextTpl: "*", xtype: 'textfield' }, buttons: [{ text: '保存', formBind:true, handler: me.onSave, scope:me }, { text: '取消', handler: me.onCancel, scope:me }] }; return Ext.apply(conf, me.etc[kind]); }, onSave:function(){ var me = this; var belong = this.belong; me.setLoading(true); var form=this.down('form'); var combo = this._combo; var params = {}; var names = belong.columns.map(column => column.dataIndex); //账户资料特殊保存逻辑 if(me.dataKind=='accountinformation'){ me.accountinformation(); return; } Ext.Array.each(names,function(name) { if(name){ var dataField = form.down('[name='+name+']'); if(dataField&&dataField.value){ params[name] = dataField.value; params._value = dataField.value; } } }); var idField = form.down('[name='+belong.keyField+']'); params[belong.keyField] = idField.value || 0; //保存接口 saas.util.BaseUtil.request({ url: belong.reqUrl, params: JSON.stringify(params), method: 'POST' }) .then(function(localJson) { me.setLoading(false); if(localJson.success){ var grid = form.ownerCt._parent ? form.ownerCt._parent.lookup('document-kind-Grid') : null; if(grid){ grid.store.load(); } if(combo){ combo.store.load(function() { typeof combo.setValue == 'function' && combo.setValue(params._value); }); } saas.util.BaseUtil.showToast('保存成功'); form.ownerCt.close(); } }) .catch(function(res) { me.setLoading(false); console.error(res); saas.util.BaseUtil.showToast('保存失败: ' + res.message); }); }, onCancel:function(){ this.hide(); }, accountinformation:function(){ var me = this; var belong = this.belong; me.setLoading(true); var form=this.down('form'); var combo = this._combo; var params = {}; var names = belong.columns.map(column => column.dataIndex); Ext.Array.each(names,function(name) { if(name){ var dataField = form.down('[name='+name+']'); if(dataField&&dataField.value){ params[name] = dataField.value; params._value = dataField.value; } } }); //更改参数 var o = ''; Ext.Array.each(params.roleNames,function(item) { o+=item.value+',' }); o = o.substring(0,o.length-1); if(o==""){ saas.util.BaseUtil.showToast('关联角色未选择,无法保存!') } var _params = { accountId:Number(params['accountId']), roleIds:o, }; //保存接口 saas.util.BaseUtil.request({ url: belong.reqUrl, params: _params, method: 'POST', headers:{ 'Access-Control-Allow-Origin': '*', "Content-Type":'application/x-www-form-urlencoded' } }) .then(function(localJson) { me.setLoading(false); if(localJson.success){ saas.util.BaseUtil.showToast('保存成功'); form.ownerCt._parent.store.load() form.ownerCt.close(); } }) .catch(function(res) { me.setLoading(false); console.error(res); saas.util.BaseUtil.showToast('保存失败: ' + res.message); }); } });