| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- Ext.QuickTips.init();
- Ext.define('erp.controller.scm.product.ProdTraceKind', {
- extend: 'Ext.app.Controller',
- requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
- views:[
- 'core.form.Panel','scm.product.ProdTraceKind','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger',
- 'core.button.Update','core.button.Close','core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField', 'core.grid.YnColumn','core.trigger.AddDbfindTrigger',
- 'core.form.FileField','core.form.SplitTextField','core.button.End','core.button.ResEnd','core.form.CheckBoxGroup','core.button.TurnMJProject',
- 'core.form.MonthDateField'
- ],
- init:function(){
- var me = this;
- me.FormUtil = Ext.create('erp.util.FormUtil');
- me.GridUtil = Ext.create('erp.util.GridUtil');
- me.BaseUtil = Ext.create('erp.util.BaseUtil');
- this.control({
- 'erpFormPanel': {
- alladded: function(form){
- var grid = Ext.getCmp('grid');
- if(grid)
- me.resize(form, grid);
- }
- },
- 'erpGridPanel2': {
- itemclick: this.onGridItemClick,
- reconfigure: function(grid){
- var form = Ext.getCmp('form');
- if(form)
- me.resize(form, grid);
- }
- },
- 'erpUpdateButton': {
- click: function(btn){
- this.onUpdate(this);
- }
- },
- 'htmleditor': {
- afterrender: function(f){
- f.setHeight(500);
- }
- }
- });
- },
- onGridItemClick: function(selModel, record){//grid行选择
- this.GridUtil.onGridItemClick(selModel, record);
- },
- getForm: function(btn){
- return btn.ownerCt.ownerCt;
- },
- resize: function(form, grid){
- if(!this.resized && form && grid && form.items.items.length > 0){
- var height = window.innerHeight,
- fh = form.getEl().down('.x-panel-body>.x-column-inner').getHeight();
- if(Ext.isIE){
- height = screen.height*0.75;
- }
- form.setHeight(70 + fh);
- grid.setHeight(height - fh - 70);
- this.resized = true;
- }
- },
- onUpdate:function(){
- var form = Ext.getCmp('form'), url = form.updateUrl;
- var me = this, params = new Object();
- if(form.codeField && (Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == '')){
- showError('编号不能为空.');
- return;
- }
- var s1 = me.checkFormDirty(form);
- if(s1 == ''){
- showError('还未添加或修改数据.');
- return;
- }
- var r = form.getValues();
- params.formStore = unescape(escape(Ext.JSON.encode(r)));
- if(url.indexOf('caller=') == -1){
- url = url + "?caller=" + caller;
- }
- me.setLoading(true);//loading...
- Ext.Ajax.request({
- url : basePath + url,
- params: params,
- method : 'post',
- callback : function(options,success,response){
- me.setLoading(false);
- var localJson = new Ext.decode(response.responseText);
- if(localJson.success){
- showMessage('提示', '保存成功!', 1000);
- //update成功后刷新页面进入可编辑的页面
- var u = String(window.location.href);
- if (u.indexOf('formCondition') == -1) {
- var value = r[form.keyField];
- var formCondition = form.keyField + "IS" + value ;
- var gridCondition = '';
- var grid = Ext.getCmp('grid');
- if(grid && grid.mainField){
- gridCondition = grid.mainField + "IS" + value;
- }
- if(me.contains(window.location.href, '?', true)){
- window.location.href = window.location.href + '&formCondition=' +
- formCondition + '&gridCondition=' + gridCondition;
- } else {
- window.location.href = window.location.href + '?formCondition=' +
- formCondition + '&gridCondition=' + gridCondition;
- }
- } else {
- window.location.reload();
- }
- } else if(localJson.exceptionInfo){
- var str = localJson.exceptionInfo;
- if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
- str = str.replace('AFTERSUCCESS', '');
- //update成功后刷新页面进入可编辑的页面
- var u = String(window.location.href);
- if (u.indexOf('formCondition') == -1) {
- var value = r[form.keyField];
- var formCondition = form.keyField + "IS" + value ;
- var gridCondition = '';
- var grid = Ext.getCmp('grid');
- if(grid && grid.mainField){
- gridCondition = grid.mainField + "IS" + value;
- }
- if(me.contains(window.location.href, '?', true)){
- window.location.href = window.location.href + '&formCondition=' +
- formCondition + '&gridCondition=' + gridCondition;
- } else {
- window.location.href = window.location.href + '?formCondition=' +
- formCondition + '&gridCondition=' + gridCondition;
- }
- } else {
- window.location.reload();
- }
- }
- showError(str);return;
- } else {
- updateFailure();
- }
- }
- });
- },
- checkFormDirty: function(){
- var form = Ext.getCmp('form');
- var s = '';
- form.getForm().getFields().each(function (item,index, length){
- if(item.logic!='ignore'){
- var value = item.value == null ? "" : item.value;
- if(item.xtype == 'htmleditor') {
- value = item.getValue();
- }
- item.originalValue = item.originalValue == null ? "" : item.originalValue;
- if(Ext.typeOf(item.originalValue) != 'object'){
- if(item.originalValue.toString() != value.toString()){//isDirty、wasDirty、dirty一直都是true,没办法判断,所以直接用item.originalValue,原理是一样的
- var label = item.fieldLabel || item.ownerCt.fieldLabel ||
- item.boxLabel || item.ownerCt.title;//针对fieldContainer、radio、fieldset等
- if(label){
- s = s + ' ' + label.replace(/ /g,'');
- }
- }
- }
- }
- });
- return (s == '') ? s : ('表单字段(<font color=green>'+s+'</font>)已修改');
- },
- setLoading : function(b) {// 原this.getActiveTab().setLoading()换成此方法,解决Window模式下无loading问题
- var mask = this.mask;
- if (!mask) {
- this.mask = mask = new Ext.LoadMask(Ext.getBody(), {
- msg : "处理中,请稍后...",
- msgCls : 'z-index:10000;'
- });
- }
- if (b)
- mask.show();
- else
- mask.hide();
- },
- /**
- * string:原始字符串
- * substr:子字符串
- * isIgnoreCase:忽略大小写
- */
- contains: function(string, substr, isIgnoreCase){
- if (string == null || substr == null) return false;
- if (isIgnoreCase === undefined || isIgnoreCase === true) {
- string = string.toLowerCase();
- substr = substr.toLowerCase();
- }
- return string.indexOf(substr) > -1;
- }
- });
|