Ext.namespace('Shipping'); Shipping.MsCodeCtnrEdit = function (config) { Ext.applyIf(this, config); this.initUIComponents(); window.Shipping.MsCodeCtnrEdit.superclass.constructor.call(this); }; Ext.extend(Shipping.MsCodeCtnrEdit, Ext.Panel, { parentWin: null, OpStatus: 'add', StoreList: null, EditRecord: null, parentRecord: null, initUIComponents: function () { this.formname = 'MsCodeCtnrEdit'; this.CtnrDynaBodyDel = []; //#region 数据集定义 //空重 this.storeCTNEF = Ext.create('Ext.data.Store', { fields: ['FType', 'NAME'] }); this.storeCTNEF.add({ "FType": 'E', "NAME": "空" }); this.storeCTNEF.add({ "FType": 'F', "NAME": "重" }); this.comboxCTNEF = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeCTNEF, fieldLabel: '空重', valueField: 'FType', displayField: 'NAME', forceSelection: true, name: 'CTNEF' }); Ext.regModel('CTNALLMODEL', { fields: [{ name: 'CTN' }] }); this.storeCodeCtn = Ext.create('DsExt.ux.RefTableStore', { model: 'CTNALLMODEL', proxy: { url: '/MvcContainer/MsOpCtnr/GetCodeCtnList' } }); this.storeCodeCtn.load(); this.comboxCTNALL = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '箱型', store: this.storeCodeCtn, name: 'CTNALL', valueField: 'CTN', displayField: 'CTN' }); //箱动态类型 //this.storeCTNSTATUS = Ext.create('DsExt.ux.RefEnumStore', {}); //this.storeCTNSTATUS.load({ params: { enumTypeId: 99060 } }); //this.comboxCTNSTATUS = Ext.create('DsExt.ux.RefEnumCombox', { // store: this.storeCTNSTATUS, // fieldLabel: '箱状态', // name: 'CTNSTATUS', // valueField: 'EnumValueName', // displayField: 'EnumValueName' //}); this.storeOWNERCTN = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefList' } }); this.storeOWNERCTN.load({ params: { condition: "1=1" } }); this.comboxOWNERCTN = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '箱东', store: this.storeOWNERCTN, forceSelection: true, name: 'OWNERCTN', valueField: 'CustName', displayField: 'CodeAndName' }); this.storeNOTYPE = Ext.create('Ext.data.Store', { fields: ['FType', 'NAME'] }); this.storeNOTYPE.add({ "FType": 'NEW', "NAME": "NEW" }); this.storeNOTYPE.add({ "FType": 'USED', "NAME": "USED" }); this.comboxNOTYPE = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: 'NEW/USED', store: this.storeNOTYPE, valueField: 'FType', displayField: 'NAME', forceSelection: true, name: 'NOTYPE' }); this.storeISLOCKBOX = Ext.create('Ext.data.Store', { fields: ['FType', 'NAME'] }); this.storeISLOCKBOX.add({ "FType": '1', "NAME": "是" }); this.storeISLOCKBOX.add({ "FType": '0', "NAME": "否" }); this.comboxISLOCKBOX = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '是否有锁盒', store: this.storeISLOCKBOX, valueField: 'FType', displayField: 'NAME', forceSelection: true, name: 'ISLOCKBOX' }); this.storeISSLOT = Ext.create('Ext.data.Store', { fields: ['FType', 'NAME'] }); this.storeISSLOT.add({ "FType": '1', "NAME": "是" }); this.storeISSLOT.add({ "FType": '0', "NAME": "否" }); this.comboxISSLOT = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeISSLOT, fieldLabel: '否有叉车槽', valueField: 'FType', displayField: 'NAME', forceSelection: true, name: 'ISSLOT' }); this.storeISSTOP = Ext.create('Ext.data.Store', { fields: ['FType', 'NAME'] }); this.storeISSTOP.add({ "FType": true, "NAME": "是" }); this.storeISSTOP.add({ "FType": false, "NAME": "否" }); this.comboxISSTOP = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeISSTOP, fieldLabel: '否有停用', valueField: 'FType', displayField: 'NAME', forceSelection: true, name: 'ISSTOP' }); this.StoreCTNSTATUS = Ext.create('Ext.data.Store', { fields: ['CTNSTATUS'] }); this.StoreCTNSTATUS.add({ "CTNSTATUS": "可用" }); this.StoreCTNSTATUS.add({ "CTNSTATUS": "不可用" }); this.comboxCTNSTATUS = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '箱状态', store: this.StoreCTNSTATUS, forceSelection: true, name: 'CTNSTATUS', valueField: 'CTNSTATUS', displayField: 'CTNSTATUS' }); this.storeCNTRSOURCE = Ext.create('DsExt.ux.RefEnumStore', {}); this.storeCNTRSOURCE.load({ params: { enumTypeId: 97015 } }); this.comboxCNTRSOURCE = Ext.create('DsExt.ux.RefEnumCombox', { store: this.storeCNTRSOURCE, fieldLabel: '箱源', name: 'CNTRSOURCE', valueField: 'EnumValueName', displayField: 'EnumValueName' }); //#endregion //#region form定义 //编辑form:formEdit this.formEdit = Ext.widget('form', { // layout: "border", region: 'north', height: 170, frame: true, bodyPadding: 1, trackResetOnLoad: true, fieldDefaults: { margins: '1 1 1 1', labelAlign: 'right', flex: 1, labelWidth: 80, msgTarget: 'qtip' //,split:true }, items: [ {//fieldset 1 xtype: 'fieldset', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items: [{//container_1 xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [{ fieldLabel: 'CTNGID', hidden: true, name: 'CTNGID' }, { fieldLabel: '箱号', flex: 1, name: 'CNTRNO' }, this.comboxCTNALL, this.comboxCNTRSOURCE,this.comboxCTNSTATUS, this.comboxOWNERCTN, this.comboxCTNEF ] } , {//container_1 xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [this.comboxNOTYPE,{ fieldLabel: '颜色', flex: 2, name: 'CTNCOLOR' }, this.comboxISLOCKBOX, this.comboxISSLOT, this.comboxISSTOP ] } , { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [ { fieldLabel: '当前动态', flex: 1, readOnly:true, name: 'CURSTATUS' }, { fieldLabel: '动态日期', name: 'CTNSTATUSTIME', format: 'Y-m-d', labelWidth: 90, readOnly: true, xtype: 'datefield', enableKeyEvents: true }, { fieldLabel: '提单号', flex: 1, readOnly: true, name: 'MBLNO' }, { fieldLabel: '所在港口', flex: 1, readOnly: true, name: 'PORT' }, { fieldLabel: '所在场站', flex: 1, readOnly: true, name: 'YARD' } ] }, { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [ { fieldLabel: '备注', flex: 1, name: 'REMARK' } ] } ] } ] }); //#endregion //公共按钮Toolbar:panelBtn this.panelBtn = new Ext.Panel({ region: "north", tbar: [ { // id: "saveandclose", text: "保存", iconCls: "btnsave", handler: function (button, event) { this.Save('0'); }, scope: this }, { // id: "saveandclose", text: "保存并关闭", handler: function (button, event) { this.Save('1'); }, scope: this }, '-', { // id: "saveandclose", text: "关闭", handler: function (button, event) { window.close(); }, scope: this } ] }); //end 按钮Toolbar //#region 还箱维护 this.storeCodeDisport = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CodeDisportModel', proxy: { url: '/CommMng/BasicDataRef/GetCodeDisportListRm' } }); this.comboxPORT = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeCodeDisport, queryMode: 'remote', minChars: 2, queryParam: 'PORT', name: 'PREPARDAT', valueField: 'PORT', displayField: 'PORT' }); this.storeYARDRETURN = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListYARD' } }); this.storeYARDRETURN.load(); // this.comboxYARDRETURN = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeYARDRETURN, queryMode: 'remote', minChars: 0, queryParam: 'CODENAME', name: 'YARD', valueField: 'CustName', displayField: 'CodeAndName' }); this.storeCustomerNameRef = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListRm' } }); this.comboxCustomerNameRef = Ext.create('DsExt.ux.RefTableCombox', { store: this.storeCustomerNameRef, forceSelection: true, queryMode: 'remote', minChars: 1, queryParam: 'CODENAME', lazyRender: false, name: 'CustomerName', valueField: 'CustName', displayField: 'CodeAndName', listeners: { scope: this, 'focus': function (_this, eOpts) { var selections = this.gridListCtnReturn.getSelectionModel().getSelection(); //获得选中的项 var strCustomerName = selections[0].get('AGENT'); var recordCustCode = Ext.create('DsShipping.ux.CustomRefModel', { GId: NewGuid(), CustCode: strCustomerName, CustName: strCustomerName, CodeAndName: strCustomerName, DESCRIPTION: strCustomerName }); this.storeCustomerNameRef.add(recordCustCode); } } }); this.storeCtnReturnList = Ext.create('Ext.data.Store', { model: 'CtnrReturn', remoteSort: true, proxy: { type: 'ajax', url: '/MvcContainer/MsOpCtnr/GetCtnReturnList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); //明细表表格 this.gridListCtnReturnCellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.CheckBoxCtnReturnModel = Ext.create('Ext.selection.CheckboxModel'); this.gridListCtnReturn = new Ext.grid.GridPanel({ store: this.storeCtnReturnList, enableHdMenu: false, region: 'center', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.gridListCtnReturnCellEditing], selModel: this.CheckBoxCtnReturnModel, selType: 'cellmodel', tbar: [{ text: '增加明细', tooltip: '增加明细', id: "btnaddreturndetail", iconCls: "btnadddetail", handler: function (button, event) { this.addReturnDetail(); }, scope: this }, '-', { text: '删除明细', tooltip: '删除明细', id: "btndelreturndetail", iconCls: "btndeletedetail", handler: function (button, event) { this.onDeleteReturnClick(); }, scope: this }], columns: [{ sortable: true, dataIndex: 'GID', header: '编号', hidden: true, width: 0 }, { sortable: true, dataIndex: 'BSNO', header: '业务编号', hidden: true, width: 0 }, { dataIndex: 'PORT', header: '还箱港口', width: 320, editor: this.comboxPORT }, { dataIndex: 'YARD', header: '还箱场站', width: 120, editor: this.comboxYARDRETURN }, { dataIndex: 'AGENT', header: '还箱代理', width: 120, editor: this.comboxCustomerNameRef }] }); this.gridListCtnReturn.on('edit', function (editor, e, eOpts) { this.gridListAfterEdit(editor, e, eOpts); }, this); this.panelCtnReturn = new Ext.Panel({ title: '还箱信息维护', layout: "border", region: 'center', animate: true, frame: false, items: [this.gridListCtnReturn] }); //#endregion this.panelTop = new Ext.Panel({ region: "north", height: 160, items: [this.panelBtn, this.formEdit] }); //#region//布局 parentWin = window.parent.opener; Ext.apply(this, { items: [this.panelTop, this.panelCtnReturn] }); this.InitData(); //#endregion //集中绑定事件 }, //end initUIComponents parentfunction: function (button, event) { var ret1 = window.parent.opener.OprationSwap(); ret1[3](); }, getLinenum: function (button, event) { var _L = 0; for (var i = 0; i < this.storeCtnrDyna.getCount(); i++) { var _t = parseInt(this.storeCtnrDyna.getAt(i).get("LINENUM")); if (_t > _L) { _L = _t; } } _L++; return _L; }, InitData: function () { this.OpStatus = 'add'; var condition = ''; if (parentWin) { var ret = parentWin.OprationSwap(); this.OpStatus = ret[0]; //edit this.StoreList = ret[1]; this.EditRecord = ret[2]; //SelectedRecord this.parentRecord = ret[3]; } if (this.OpStatus == 'edit') condition = " c.CTNGID='" + this.EditRecord.get('CTNGID') + "'"; this.LoadData(this.OpStatus, condition); //this.LoadMustBe(); }, //end InitData //载入数据 LoadData: function (OpStatus, condition) { if (COMPANYID == "" || DEPTGID == "") { alert("登录信息不全,请退出重新登录"); return; } this.OpStatus = OpStatus; Ext.Ajax.request({ waitMsg: '正在查询主表数据...', url: '/MvcContainer/MsOpCtnr/GetCtnr', params: { handle: OpStatus, condition: condition }, callback: function (options, success, response) { if (success) { var result = Ext.JSON.decode(response.responseText); if (!result.Success) { Ext.Msg.show({ title: '提示', msg: result.Message, icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK }); return; } var data = result.data; this.formEdit.getForm().reset(); this.formEdit.getForm().setValues(data); if (this.OpStatus == 'edit') { this.storeCtnReturnList.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: " BSNO='" + data.CTNGID + "'" }, waitMsg: "正在查询数据...", scope: this }); } } else { Ext.MessageBox.alert('请求出现错误,请重试', response.responseText); } }, scope: this }); }, // end LoadDate Save: function (type) { var basicForm = this.formEdit.getForm(); var CTNGID = basicForm.findField('CTNGID').value; if (!basicForm.isValid()) { return; } var data = this.formEdit.getForm().getValues(); if (COMPANYID == "" || DEPTGID == "") { Ext.MessageBox.alert("提示", "登录信息不全,请退出重新登录"); return; } var CtnReturndatas = []; for (var i = 0; i < this.storeCtnReturnList.getCount(); i += 1) { var member = this.storeCtnReturnList.getAt(i); CtnReturndatas.push(member); } var CtnReturnBody = ConvertRecordsToJsonAll(CtnReturndatas); var _this = this; Ext.Msg.wait('正在更新动态数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在更新动态数据...', url: '/MvcContainer/MsOpCtnr/SaveCtn', scope: this, async: false, params: { OpStatus: this.OpStatus, data: Ext.JSON.encode(data), body: CtnReturnBody }, callback: function (options, success, response) { if (success) { Ext.MessageBox.hide(); var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { var returnData = jsonresult.Data; this.formEdit.getForm().setValues(returnData); if (this.OpStatus == 'add') { var arrNewRecords = this.StoreList.add(returnData); this.EditRecord = arrNewRecords[0]; } else if (this.OpStatus == 'edit') { var editp = Ext.create('MsOpCtnrDetail', returnData); this.EditRecord.fields.each(function (field) { if (field.persist) { name = field.name; if (name != 'id') this.EditRecord.set(name, editp.get(name)); } }, this); this.EditRecord.commit(); } if (type == '0') { this.OpStatus = 'edit'; var CTNGID = _this.EditRecord.get('CTNGID'); } else if (type == '1') {//保存并关闭 window.close(); } } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } else { Ext.Msg.show({ title: '请重试', msg: '服务器响应出错', icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } //alert('03'); } }); }, //end save addReturnDetail: function (button, event) { var store = null; var record = null; var newid = NewGuid(); record = Ext.create('CtnrReturn', { BSNO: '*', GID: newid, PORT: '', YARD: '', AGENT: '', REMARK: '' }); this.storeCtnReturnList.add(record); var n = this.storeCtnReturnList.getCount(); this.gridListCtnReturnCellEditing.startEditByPosition({ row: n - 1, column: 2 }); }, onDeleteReturnClick: function (button, event, type) { var bsno = this.formEdit.getForm().findField('BSNO').getValue(); var selectedRecords = []; selectedRecords = this.CheckBoxCtnReturnModel.selected.items; if (selectedRecords.length == 0) { Ext.Msg.show({ title: '提示', msg: '请先选择要删除的还箱信息!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); return; } Ext.MessageBox.confirm('提示', '确定要删除选中的还箱信息吗?', function (btn) { if (btn == 'yes') { if (selectedRecords.length > 0) { var CtnrIndatas = []; for (var i = 0; i < selectedRecords.length; i++) { var rec = selectedRecords[i]; if (rec.data.BSNO == "" || rec.data.BSNO == "*")//如果是新增但没有保存的数据,没有必要提交到后台 { this.storeCtnReturnList.remove(selectedRecords[i]); } else { CtnrIndatas.push(rec); } } var CtnrInBody = ConvertRecordsToJsonAll(CtnrIndatas); if (CtnrIndatas.length > 0) { Ext.Msg.wait('正在删除...'); Ext.Ajax.request({ waitMsg: '正在删除...', //'正在删除数据...', url: '/MvcContainer/MsOpCtnr/DeleteReturnDetail', params: { data: CtnrInBody, bsno: bsno }, callback: function (options, success, response) { if (success) { var jsonresult = Ext.JSON.decode(response.responseText); if (jsonresult.Success) { this.storeCtnReturnList.reload(); Ext.Msg.show({ title: '提示', msg: jsonresult.Message, icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); } else { Ext.Msg.show({ title: '错误', msg: jsonresult.Message, icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK }); } } }, failure: function (response, options) { Ext.Msg.show({ title: '警告', msg: '服务器响应出错', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK }); }, scope: this }); //end Ext.Ajax.request } } } }, this); }, getLinenum: function (button, event) { var _L = 0; for (var i = 0; i < this.storeWMSIN.getCount(); i++) { var _t = parseInt(this.storeWMSIN.getAt(i).get("LINENUM")); if (_t > _L) { _L = _t; } } _L++; return _L; }, //#endregion });