You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

578 lines
20 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Ext.namespace('Shipping');
Shipping.MsCodeGoodsIndex = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.Shipping.MsCodeGoodsIndex.superclass.constructor.call(this);
};
//创建弹出窗口
Ext.extend(Shipping.MsCodeGoodsIndex, Ext.Panel, {
OprationStatus: null, //仅当弹出界面时使用
SelectedRecord: null,
OprationStatusF: null, //仅当弹出界面时使用
SelectedRecordF: null,
PageSize: 21,
initUIComponents: function () {
//定义数据集
this.storeList = Ext.create('Ext.data.Store', {
model: 'code_vessel',
pageSize: this.PageSize,
proxy: {
type: 'ajax',
url: '/MvcShipping/MsCodeVesselSet/GetDataList',
reader: {
//id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
//foot
this.storefootList = Ext.create('Ext.data.Store', {
model: 'code_voyno',
pageSize: this.PageSize,
proxy: {
type: 'ajax',
url: '/MvcShipping/MsCodeVesselSet/GetFootList',
reader: {
//id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
}
});
//船名store
this.vesselStore = Ext.create('DsExt.ux.RefTableStore', {
model: 'code_vessel',
proxy: { url: '/MvcShipping/MsCodeVesselSet/GetDataList' }
});
this.vesselStore.load();
this.vesselLoad = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '船名',
store: this.vesselStore,
valueField: 'vessel',
displayField: 'vessel',
name: 'vessel',
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
//航次Store
this.VOYNOStore = Ext.create('DsExt.ux.RefTableStore', {
model: 'code_voyno',
proxy: { url: '/MvcShipping/MsCodeVesselSet/GetCountryType' }
});
this.VOYNOStore.load();
this.VOYNOLoad = Ext.create('DsExt.ux.RefTableCombox', {
fieldLabel: '航次',
store: this.VOYNOStore,
valueField: 'VOYNO',
displayField: 'VOYNO',
name: 'VOYNO',
listeners: {
specialkey: function (field, e) {
if (e.getKey() == e.ENTER) {
_this.onRefreshClick();
}
}
}
});
//定义Grid
this.gridList = new Ext.grid.GridPanel({
store: this.storeList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
columns: [
{
sortable: true,
dataIndex: 'vsid',
header: '船名代码',
width: 180,
hidden: true
},
{
sortable: true,
dataIndex: 'vessel',
header: '船名',
width: 180
}, {
sortable: true,
dataIndex: 'cname',
header: '中文名称',
width: 180
}, {
sortable: true,
dataIndex: 'carrier',
header: '船公司',
width: 200
}, {
sortable: true,
dataIndex: 'edicode',
header: 'EDI船舶呼号',
width: 140
}
],
bbar: Ext.create('Ext.PagingToolbar', {
store: this.storeList,
displayInfo: true,
displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录',
emptyMsg: "没有数据"
})
});
this.gridList.addListener('itemdblclick', function (dataview, record, item, index, e, b) {
this.SelectedRecord = record;
this.OprationStatus = 'edit';
DsOpenEditWin('/MvcShipping/MsCodeVesselSet/Edit', '', '300', '500', '160', '500');
}, this);
this.gridList.addListener('cellclick', function (dataview, record, item, index, e, b) {
var selections = this.gridList.getSelectionModel().getSelection();
var arecord = selections[0];
var data = arecord.data.vsid;
this.storefootList.load({
params: { condition: data },
waitMsg: "正在查询数据...",
scope: this
});
}, this);
//#region formSearch
//定义Grid
this.gridfootList = new Ext.grid.GridPanel({
store: this.storefootList,
enableHdMenu: false,
region: 'center',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
columns: [
{
sortable: true,
dataIndex: 'VOID',
header: 'VOID',
width: 100,
hidden: true
},
{
sortable: true,
dataIndex: 'VSID',
header: '船名代码',
width: 100,
hidden: true
},
{
sortable: true,
dataIndex: 'VESSEL',
header: '船名',
width: 100
}, {
sortable: true,
dataIndex: 'VOYNO',
header: '航次',
width: 100
}, {
sortable: true,
dataIndex: 'PORTLOADREF',
header: '装货港',
width: 140
}, {
sortable: true,
dataIndex: 'ENTREPORTREF',
header: '中转港',
width: 140
}, {
sortable: true,
dataIndex: 'PORTDISCHARGEREF',
header: '卸货港',
width: 140
}, {
sortable: true,
dataIndex: 'ETD',
header: '开船日期',
width: 100
}, {
sortable: true,
dataIndex: 'CLOSINGDATE',
header: '截港日期',
width: 100
}, {
sortable: true,
dataIndex: 'ETA',
header: '预抵日期',
width: 100
}, {
sortable: true,
dataIndex: 'YARDID',
header: '默认场站(码头)',
width: 100
}, {
sortable: true,
dataIndex: 'ATD',
header: 'ATD',
width: 100
}, {
sortable: true,
dataIndex: 'CLOSEDOCDATE',
header: '截单时间',
width: 140
}
],
bbar: Ext.create('Ext.PagingToolbar', {
store: this.storefootList,
displayInfo: true,
displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录',
emptyMsg: "没有数据"
})
});
this.gridfootList.addListener('itemdblclick', function (dataview, record, item, index, e, b) {
this.SelectedRecordF = record;
this.OprationStatusF = 'edit';
DsOpenEditWin('/MvcShipping/MsCodeVesselSet/FootEdit', '', '370', '830', '160', '300');
}, this);
//#region formSearch
//#region formSearch枚举参照相关干
//#endregion
_this = this;
this.formSearch = Ext.widget('form', {
frame: true,
region: 'center',
bodyPadding: 5,
fieldDefaults: {
margins: '2 2 2 2',
labelAlign: 'right',
flex: 1,
labelWidth: 90,
msgTarget: 'qtip'
},
items: [
{//fieldset 1
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '80%'
},
items: [, {
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [this.vesselLoad,
this.VOYNOLoad]
}
]//end items(fieldset 1)
}//end fieldset 1
]//end root items
});
//#endregion formSearch
//查询工具条
this.panelBtn = new Ext.Panel({
region: "north",
tbar: [
{
text: "新建",
iconCls: "btnadd",
handler: function (button, event) {
this.OprationStatus = 'add';
DsOpenEditWin('/MvcShipping/MsCodeVesselSet/Edit', '', '300', '500', '160', '500');
},
scope: this
},
{
text: "删除",
iconCls: "btndelete",
handler: function (button, event) {
this.onDeleteClick(button, event);
},
scope: this
},
'-',
{
text: "执行查询",
iconCls: "btnrefresh",
handler: function (button, event) {
this.onRefreshClick(button, event);
},
scope: this
},
{
text: "重置条件",
iconCls: "btnreset",
handler: function (button, event) {
var form = this.formSearch.getForm();
form.findField('vessel').setValue("");
form.findField('VOYNO').setValue("");
},
scope: this
}
]
});
//查询工具条底部
this.panelfootBtn = new Ext.Panel({
region: "north",
tbar: [
{
text: "新建",
iconCls: "btnadd",
handler: function (button, event) {
this.OprationStatusF = 'add';
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择单据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var arecord = selections[0];
this.SelectedRecordF = arecord.data;
DsOpenEditWin('/MvcShipping/MsCodeVesselSet/FootEdit', '', '370', '830', '160', '300');
},
scope: this
},
{
text: "删除",
iconCls: "btndelete",
handler: function (button, event) {
this.onDeleteClickFoot(button, event);
},
scope: this
},'-',
{
text: "同步业务ETD和ATD",
iconCls: "btndelete",
handler: function (button, event) {
this.onUpBsClickFoot(button, event);
},
scope: this
}
]
});
this.panelTop = new Ext.Panel({
layout: "border",
region: "north",
height: 80,
items: [this.formSearch, this.panelBtn]
});
this.panelContract = new Ext.Panel({
//title: '',
layout: "border",
region: 'center',
height: 600,
margin: '1 2',
split: true,
items: [this.gridList]
});
this.panelInfoList = new Ext.Panel({
title: '',
layout: "border",
region: 'center',
width: 800,
margin: '1 1',
split: true,
items: [this.gridfootList]
});
this.panelSalesBody = new Ext.Panel({
layout: "border",
region: 'south',
height: 200,
margin: '1 1',
split: true,
items: [this.panelfootBtn, this.panelInfoList
]
});
Ext.apply(this, {
items: [this.panelTop, this.panelContract, this.panelSalesBody]
});
this.storeList.on('beforeload', function (store) {
var sql = this.getCondition();
Ext.apply(store.proxy.extraParams, { condition: sql });
}, this);
this.onRefreshClick();
}, //end initUIComponents
onRefreshClick: function (button, event) {
// var sql = this.getCondition();
var form = this.formSearch.getForm();
if (!form.isValid()) {
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
return '';
}
var sql = this.getCondition();
this.storeList.load({
params: { condition: sql },
waitMsg: "正在查询数据...",
scope: this
});
},
onDeleteClick: function (button, event) {
var selections = this.gridList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择单据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var record = selections[0];
Ext.MessageBox.confirm('提示', '确定删除该记录吗?', function (btn) {
if (btn == 'yes') {
Ext.Msg.wait('正在删除数据...');
Ext.Ajax.request({
waitMsg: '正在删除数据...',
url: '/MvcShipping/MsCodeVesselSet/Delete',
params: {
data: Ext.JSON.encode(record.data)
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
this.storeList.remove(record);
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 });
},
success: function (response, options) {
},
scope: this
}); //end Ext.Ajax.reques what happend?
}
}, this);
}, //onDeleteClick
onDeleteClickFoot: function (button, event) {
var selections = this.gridfootList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择单据!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var record = selections[0];
Ext.MessageBox.confirm('提示', '确定删除该记录吗?', function (btn) {
if (btn == 'yes') {
Ext.Msg.wait('正在删除数据...');
Ext.Ajax.request({
waitMsg: '正在删除数据...',
url: '/MvcShipping/MsCodeVesselSet/DeleteFoot',
params: {
data: Ext.JSON.encode(record.data)
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
this.storefootList.remove(record);
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 });
},
success: function (response, options) {
},
scope: this
}); //end Ext.Ajax.request
}
}, this);
}, //onDeleteClick
onUpBsClickFoot: function (button, event) {
var selections = this.gridfootList.getSelectionModel().getSelection();
if (selections.length == 0) {
Ext.Msg.show({ title: '提示', msg: '请先选择航次!', icon: Ext.Msg.INFO, buttons: Ext.Msg.OK });
return;
}
var record = selections[0];
Ext.MessageBox.confirm('提示', '确定更新此航次的ETD和ATD记录吗', function (btn) {
if (btn == 'yes') {
Ext.Msg.wait('正在删除数据...');
Ext.Ajax.request({
waitMsg: '正在删除数据...',
url: '/MvcShipping/MsCodeVesselSet/UpdateBsVesselVoy',
params: {
data: Ext.JSON.encode(record.data)
},
callback: function (options, success, response) {
if (success) {
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
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 });
},
success: function (response, options) {
},
scope: this
}); //end Ext.Ajax.request
}
}, this);
}, //onDeleteClick
getCondition: function () {
var form = this.formSearch.getForm();
if (!form.isValid()) {
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
return '';
}
var sql = '';
var VESSEL = form.findField('vessel').getValue();
sql = sql + getAndConSql(sql, VESSEL, "z.VESSEL = '" + VESSEL + "'");
var VOYNO = form.findField('VOYNO').getValue();
sql = sql + getAndConSql(sql, VOYNO, "VOYNO = '" + VOYNO + "'");
return sql;
},
OprationSwap: function () {
var ret = new Array();
ret[0] = this.OprationStatus;
ret[1] = this.storeList;
ret[2] = this.SelectedRecord;
ret[3] = this.OprationStatusF;
ret[4] = this.storefootList;
ret[5] = this.SelectedRecordF;
return ret;
}
});