Ext.namespace('Shipping'); //#region 获取 YYYY-mm-dd 格式的日期 //var xhr = new XMLHttpRequest(); //var currdate = new Date(); //xhr.open("HEAD", location.href, true); //xhr.onreadystatechange = function () { // if (xhr.readyState == 4 && xhr.status == 200) { // var datestr = xhr.getResponseHeader("Date"); // currdate = new Date(datestr); // } //} //xhr.send(null); //#endregion Shipping.MsOpCtnrDynaEdit = function (config) { Ext.applyIf(this, config); this.initUIComponents(); window.Shipping.MsOpCtnrDynaEdit.superclass.constructor.call(this); }; Ext.extend(Shipping.MsOpCtnrDynaEdit, Ext.Panel, { parentWin: null, OpStatus: 'add', StoreList: null, EditRecord: null, parentRecord: null, initUIComponents: function () { this.formname = 'MsCtnrDynaEdit'; 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' }); this.storeCodeLoadport = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CodeLoadportModel', proxy: { url: '/CommMng/BasicDataRef/GetCodeLoadportList' } }); this.storeCodeLoadport.load(); this.comboxPORT = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '所在港口', store: this.storeCodeLoadport, //forceSelection: true, id: 'PORT', name: 'PORT', valueField: 'PORT', displayField: 'CodeAndName', matchFieldWidth: false //下拉款自适应宽度 // }); //场站 this.storeYARD = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.CustomRefModel', proxy: { url: '/CommMng/BasicDataRef/GetCustomRefListYARD' } }); this.storeYARD.load(); // this.comboxYARD = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '场站', store: this.storeYARD, forceSelection: true, queryMode: 'remote', minChars: 0, queryParam: 'CODENAME', name: 'YARD', valueField: 'CustName', displayField: 'CodeAndName' }); //人员信息加载 this.storeOpCode = Ext.create('DsExt.ux.RefTableStore', { model: 'DsShipping.ux.UserRefModel', proxy: { url: '/CommMng/BasicDataRef/GetUserRefList' } }); this.storeOpCode.load(); //操 作 this.comboxOP = Ext.create('DsExt.ux.RefTableCombox', { fieldLabel: '操作', store: this.storeOpCode, forceSelection: true, name: 'OP', valueField: 'UserName', displayField: 'CodeAndName', enableKeyEvents: true }); //箱动态类型 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' }); //#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: 64, 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', id: 'CNTRNO', readOnly:true },this.comboxPORT, this.comboxYARD, this.comboxCTNSTATUS, this.comboxCTNEF ] }//container_1 end , { xtype: 'container', layout: 'hbox', defaultType: 'textfield', items: [ { fieldLabel: '主提单号', flex: 1, name: 'MBLNO', id: 'MBLNO' }, { fieldLabel: '动态日期', name: 'CTNSTATUSTIME', format: 'Y-m-d', labelWidth: 90, xtype: 'datefield', enableKeyEvents: true }, { fieldLabel: '箱型', flex: 1, name: 'CTNALL', id: 'CTNALL', xtype: 'hidden' }, { fieldLabel: '箱源', flex: 1, name: 'CNTRSOURCE', id: 'CNTRSOURCE', xtype: 'hidden' }, { xtype: 'hidden' } ] } ] } ] }); //#endregion //#region 编辑 //数据集 this.storeCtnrDyna = Ext.create('Ext.data.Store', { model: 'MsOpCtnrDetail', pageSize: this.PageSize, remoteSort: false, pruneModifiedRecords: true, proxy: { type: 'ajax', url: '/MvcShipping/MsOpCtnr/GetDynaList', reader: { id: 'GID', root: 'data', totalProperty: 'totalCount' } } }); var _this = this; this.columns = [ { sortable: true, //1 dataIndex: 'GID', header: '惟一编号', width: 80, hidden: true }, { sortable: true, //1 dataIndex: 'CTNGID', header: '箱号', width: 80, hidden: true }, { sortable: true, //1 dataIndex: 'CNTRNO', header: '箱号', width: 80, hidden: false, editor: { xtype: 'textfield' } }, { sortable: true, dataIndex: 'CTNEF', header: '空重', width: 80, editor: this.comboxCTNEF },{ sortable: true, dataIndex: 'CTNSTATUS', header: '当前箱动态', width: 80, editor: this.comboxCTNSTATUS }, { sortable: true, dataIndex: 'CTNSTATUSTIME', header: '箱动态时间', width: 80, editor: { xtype: 'datefield', format: 'Y-m-d', selectOnFocus: true }, renderer: Ext.util.Format.dateRenderer('Y-m-d') }, { sortable: true, dataIndex: 'PORT', header: '当前地点', width: 80, editor: this.comboxPORTDetail }, { sortable: true, dataIndex: 'YARD', header: '当前场站', width: 80, editor: this.comboxYARDDetail }, { sortable: true, dataIndex: 'REMARK', header: '备注', width: 80, editor: { xtype: 'textfield' } } ]; this.girdcolums = this.columns; this.girdcolums = DsTruck.GetGridPanel(USERID, this.formname, this.girdcolums, 1); //使用者id,表名,中间column数组,跳过一开始的几列 this.cellEditing = Ext.create('Ext.grid.plugin.CellEditing', { clicksToEdit: 1 }); this.CheckBoxModel = Ext.create('Ext.selection.CheckboxModel'); this.formCtnrInBody = new Ext.grid.GridPanel({ store: this.storeCtnrDyna, enableHdMenu: false, region: 'center', columnLines: true, //layout: "border", //title: '费用明细', loadMask: { msg: "数据加载中,请稍等..." }, trackMouseOver: true, disableSelection: false, plugins: [this.cellEditing], selModel: this.CheckBoxModel, selType: 'cellmodel', features: [{ ftype: 'summary'//Ext.grid.feature.Summary表格汇总特性 }], tbar: [{ xtype: 'label', text: '集装箱信息', style: 'font-size:18px', labelColor: '#099', //style:'background-color: #4b9bf5', x: '5%', y: '5%' }, { text: '增加', id: "add1", tooltip: '增加', iconCls: "btnadddetail", handler: function (button, event) { this.onAddCtnrInClick(button, event); }, scope: this }, { text: '删除', id: "del1", tooltip: '删除', iconCls: "btndeletedetail", handler: function (button, event) { this.onDelCtnrInClick(button, event); }, scope: this }, '-', { // id: "saveandclose", text: "保存", iconCls: "btnsave", handler: function (button, event) { this.Save('0'); }, scope: this }, '-', { text: "保存列表样式", menu: [{ text: "保存", handler: function (button, event) { _this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.formCtnrInBody.columns, _this.girdcolums, 0, true); //使用者id,表名,中间column数组,跳过一开始的几列 } }, { text: "初始化", handler: function (menu, event) { _this.formCtnrInBody.reconfigure(_this.storeCtnrDyna, _this.columns); _this.girdcolums = DsTruck.SaveGridPanel(USERID, _this.formname, _this.formCtnrInBody.columns, _this.columns, 0, true); //使用者id,表名,中间column数组,跳过一开始的几列 } }], scope: this }], columns: this.girdcolums, listeners: { 'beforeedit': function (o) { } } }); //////////////////////////////////////////////明细<<<< CtnrIn列表 >>>>结束 //#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 this.panelTop; //#region//布局 parentWin = window.parent.opener; if (parentWin) { var ret = parentWin.OprationSwap(); this.OpStatus = ret[0]; //edit this.StoreList = ret[1]; this.EditRecord = ret[2]; //SelectedRecord this.parentRecord = ret[3]; } this.panelTop = new Ext.Panel({ region: "north", height: 120, items: [this.panelBtn, this.formEdit] }); this.panelDetail = new Ext.Panel({ layout: "border", region: 'center', items: [this.formCtnrInBody] }); Ext.apply(this, { items: [this.panelTop, this.panelDetail] }); 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]; } condition = " 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; var basicForm = this.formEdit.getForm(); basicForm.findField("CTNGID").setValue(this.EditRecord.get('CTNGID')); basicForm.findField("CNTRNO").setValue(this.EditRecord.get('CNTRNO')); basicForm.findField("PORT").setValue(this.EditRecord.get('PORT')); basicForm.findField("YARD").setValue(this.EditRecord.get('YARD')); basicForm.findField("CTNEF").setValue(this.EditRecord.get('CTNEF')); basicForm.findField("CTNSTATUS").setValue(this.EditRecord.get('CTNSTATUS')); basicForm.findField("CTNSTATUSTIME").setValue(this.EditRecord.get('CTNSTATUSTIME')); basicForm.findField("MBLNO").setValue(this.EditRecord.get('MBLNO')); basicForm.findField("CTNSTATUSTIME").setValue(this.EditRecord.get('CTNSTATUSTIME')); basicForm.findField("CTNALL").setValue(this.EditRecord.get('CTNALL')); basicForm.findField("CNTRSOURCE").setValue(this.EditRecord.get('CNTRSOURCE')); var CTNGID = this.EditRecord.get('CTNGID'); this.storeCtnrDyna.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: "CTNGID='" + CTNGID + "'" }, waitMsg: "正在查询数据...", 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 _this = this; Ext.Msg.wait('正在更新动态数据, 请稍侯..'); Ext.Ajax.request({ waitMsg: '正在更新动态数据...', url: '/MvcShipping/MsOpCtnr/SaveDyna', scope: this, async: false, params: { OpStatus: this.OpStatus, data: Ext.JSON.encode(data) }, 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.storeCtnrDyna.commitChanges(); if (type == '0') { this.OpStatus = 'edit'; var CTNGID = _this.EditRecord.get('CTNGID'); this.storeCtnrDyna.load({ params: { start: 0, limit: this.PageSize, sort: '', condition: " CTNGID='" + CTNGID + "'" }, waitMsg: "正在查询数据...", scope: this }); } 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 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 });