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.

528 lines
16 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('DsTruck');
DsTruck.CityDistanceIndex = function (config) {
Ext.applyIf(this, config);
this.initUIComponents();
window.DsTruck.CityDistanceIndex.superclass.constructor.call(this);
};
//201405161239
Ext.extend(DsTruck.CityDistanceIndex, Ext.Panel, {
PageSize: 500,
OprationStatus: null, //仅当弹出界面时使用
SelectedRecord: null,
initUIComponents: function () {
this.bodyDel = [];
//定义数据集
this.storeList = Ext.create('Ext.data.Store', {
pageSize: this.PageSize,
idProperty: 'GID',
model: 'CityDistancemb',
remoteSort: true,
proxy: {
type: 'ajax',
url: '/TruckMng/CityDistance/GetDataList',
reader: {
id: 'id',
root: 'data',
totalProperty: 'totalCount'
}
}
});
Ext.define('IN_PROVINCEMd', {
extend: 'Ext.data.Model',
fields: [
{ name: 'IN_PROVINCE', type: 'string' },
{ name: 'IN_PROVINCE_REF', type: 'string' }
]
});
var IN_PROVINCEData = [{ "IN_PROVINCE": 0, "IN_PROVINCE_REF": "省外" },
{ "IN_PROVINCE": 1, "IN_PROVINCE_REF": "省内"}];
this.storeIN_PROVINCE = Ext.create('Ext.data.Store', {
model: 'IN_PROVINCEMd',
data: IN_PROVINCEData
});
this.comboxIN_PROVINCE = Ext.create('DsExt.ux.RefEnumCombox', {
//fieldLabel: '省内/省外',
forceSelection: true,
store: this.storeIN_PROVINCE,
name: 'IN_PROVINCE',
valueField: 'IN_PROVINCE',
displayField: 'IN_PROVINCE_REF'
});
this.formname = "CityDistance";
this.column = [{
sortable: true,
dataIndex: '',
header: '',
width: 120
}, {
dataIndex: 'id',
header: 'id',
width: 80, hidden: true
},
{
dataIndex: 'NAME',
header: '城市名称',
width: 100,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'DISTANCE',
header: '中烟目的地距离',
width: 100,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'PAY_DISTANCE',
header: '结算距离',
width: 100,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
sortable: true,
dataIndex: 'IN_PROVINCE',
header: '省内/省外',
width: 60,
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.IN_PROVINCE_REF;
},
editor: this.comboxIN_PROVINCE
}, {
sortable: true,
dataIndex: 'PROVINCENAME',
header: '省名',
width: 60,
renderer: function (value, p, record) {
if (value == null || value == '') return '';
else return record.data.PROVINCENAME;
},
editor: {
xtype: 'textfield',
selectOnFocus: true
}
}, {
sortable: true,
dataIndex: 'AREANAME',
header: '隶属区域',
width: 100,
editor: {
xtype: 'textfield',
selectOnFocus: true
}
},
{
dataIndex: 'WEIGHTPRICE',
header: '吨/公里',
width: 100,
editor: {
xtype: 'textfield',
selectOnFocus: true,
allowBlank: false
}
},
{
dataIndex: 'DISTANCEPRICE',
header: '车公里',
width: 100,
editor: {
xtype: 'textfield',
allowBlank: false,
selectOnFocus: true
}
}
];
this.cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
this.ProjectCBModel = Ext.create('Ext.selection.CheckboxModel', { checkOnly: true });
Ext.grid.RowNumberer = Ext.extend(Ext.grid.RowNumberer, {
width: 50
});
//定义Grid
this.gridList = new Ext.grid.GridPanel({
store: this.storeList,
enableHdMenu: false,
region: 'center',
trackResetOnLoad: true,
//height: 160,
title: '费用明细',
loadMask: { msg: "数据加载中,请稍等..." },
trackMouseOver: true,
disableSelection: false,
plugins: [this.cellEditing],
stateful: false,
selModel: this.ProjectCBModel,
selType: 'cellmodel',
columns: [new Ext.grid.RowNumberer()],
bbar: Ext.create('Ext.PagingToolbar', {
store: this.storeList,
displayInfo: true,
displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录',
emptyMsg: "没有数据"
})
});
/////////////以下部分为获取存储的gridpanel显示样式
this.column = DsTruck.GetGridPanel(USERID, this.formname, this.column, 1);
//使用者id表名 中间column数组跳过一开始的几列
this.gridList.reconfigure(this.storeList, this.column);
this.gridList.columns[0] = new Ext.grid.RowNumberer();
this.gridList.on('edit', function (editor, e, eOpts) {
this.gridAfterEdit(editor, e, eOpts);
}, this);
////////////////////////////
//#region formSearch
/*
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: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: [
{
fieldLabel: '提单号/船名航次',
name: 'BLNO', flex: 1
}, {
fieldLabel: '项目编号',
name: 'PROJECTNO', flex: 1
}, {
fieldLabel: '项目类型',
name: 'PROTYPE', flex: 1
}, this.comboxBLNOTYPE_1,
this.comboxTF_1
]
}
]//end items(fieldset 1)
}, //end fieldset 1
{//fieldset 2
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: []
}
]//end items(fieldset 2)
}//end fieldset 2
, {//fieldset 2
xtype: 'container',
defaultType: 'textfield',
layout: 'anchor',
defaults: {
anchor: '100%'
},
items: [{
xtype: 'container',
layout: 'hbox',
defaultType: 'textfield',
items: []
}]//end items(fieldset 2)
}//end fieldset 2
]//end root items
});
*/
//查询工具条
this.panelBtn = new Ext.Panel({
region: "north",
tbar: [
{
text: "执行查询",
iconCls: "btnrefresh",
handler: function (button, event) {
this.onRefreshClick(button, event);
},
scope: this
},
{
text: '增加明细',
tooltip: '增加明细',
iconCls: "btnadddetail",
handler: function (button, event) {
this.onAddClick(button, event);
},
scope: this
}, {
text: '删除明细',
tooltip: '删除明细',
iconCls: "btndeletedetail",
handler: function (button, event) {
this.onDelClick(button, event);
},
scope: this
}, {
id: "btnSave",
text: '保存更改',
tooltip: '保存更改',
iconCls: "btnsave",
handler: function (button, event) {
this.Save();
//alert(USERID);
},
scope: this
}, '-', {
text: "导出Excel",
id: "btnExportExcel",
iconCls: 'btnexportexcel',
handler: function (button, event) {
this.onExportClick(button, event);
},
scope: this
}
]
});
//#endregion
this.panelTop = new Ext.Panel({
layout: "border",
region: "north",
height: 30,
items: [/*this.formSearch,*/this.panelBtn]
});
Ext.apply(this, {
items: [this.panelTop, this.gridList]
});
this.storeList.on('beforeload', function (store) {
if (!this.checkSearchCondition())
return;
var sql = this.getCondition();
Ext.apply(store.proxy.extraParams, { condition: sql });
}, this);
this.gridList.on('edit', function (editor, e, eOpts) {
this.ProjectAfterEdit(editor, e, eOpts);
}, this);
/////////////onRefreshClick
if (!this.checkSearchCondition())
return;
var sql = this.getCondition();
this.storeList.load({
params: { start: 0, limit: this.PageSize, condition: sql },
waitMsg: "正在查询数据...",
scope: this
});
this.bodyDel = [];
//////////////
}, //end initUIComponents
ProjectAfterEdit: function (editor, e, eOpts) {
if (e.field == 'IN_PROVINCE') {
var _r = DsStoreQueryBy(this.storeIN_PROVINCE, 'IN_PROVINCE', e.value);
if (_r.getCount() > 0) {
var _d = _r.getAt(0).data;
e.record.set('IN_PROVINCE_REF', _d.IN_PROVINCE_REF);
} else {
e.record.set('IN_PROVINCE_REF', '');
}
}
},
onRefreshClick: function (button, event) {
if (!this.checkSearchCondition())
return;
var sql = this.getCondition();
this.storeList.load({
params: { start: 0, limit: this.PageSize, condition: sql },
waitMsg: "正在查询数据...",
scope: this
});
this.bodyDel = [];
},
getCondition: function () {
/*var form = this.formSearch.getForm();
if (!form.isValid()) {
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
return '';
}*/
var sql = '';
//var COMPANYID = form.findField('PROJECTNO').getValue();
//sql = sql + getAndConSql(sql, COMPANYID, "COMPANYID = '" + COMPANYID + "'");
/*
var BLNO = form.findField('BLNO').getValue();
sql = sql + getAndConSql(sql, BLNO, "BLNO like '%" + BLNO + "%'");
var PROTYPE = form.findField('PROTYPE').getValue();
sql = sql + getAndConSql(sql, PROTYPE, "PROTYPE like '%" + PROTYPE + "%'");
var BLNOTYPE = form.findField('BLNOTYPE').getValue();
sql = sql + getAndConSql(sql, BLNOTYPE, "BLNOTYPE like '%" + BLNOTYPE + "'%");
*/
return sql;
},
checkSearchCondition: function () {
/*var form = this.formSearch.getForm();
if (!form.isValid()) {
Ext.Msg.alert('提示', '查询条件赋值错误,请检查。');
return false;
}*/
return true;
},
onExportClick: function (button, event) {
GridExportExcelPage(this.gridList);
},
getStrValue: function (list) {
var _list = [];
for (var _i = 0; _i < list.length; _i++) {
_list.push("'" + list[_i] + "'");
}
return _list;
},
onAddClick: function (button, event) {
var record = Ext.create('CityDistancemb', {
'id': '',
'NAME': '',
'DISTANCE': '0',
'IN_PROVINCE': '',
'IN_PROVINCE_REF': ''
});
this.storeList.add(record);
var n = this.storeList.getCount();
this.cellEditing.startEditByPosition({ row: n - 1, column: 2 });
},
onDelClick: function (button, event) {
var selectedRecords = this.gridList.selModel.getSelection();
Ext.MessageBox.confirm('提示', '确定删除记录吗?', function (btn) {
if (btn == 'yes') {
if (selectedRecords.length > 1) {
alert("为防止误删,一次只允许删除一行数据");
return;
}
for (var i = 0; i < selectedRecords.length; i++) {
var rec = selectedRecords[i];
if (rec.id != "") //如果是新增但没有保存的数据,没有必要提交到后台
{
this.bodyDel.push(rec);
}
this.storeList.remove(selectedRecords[i]);
}
}
}, this);
},
Save: function (type) {
//费用
var bodyList = [];
for (i = 0; i < this.storeList.getCount(); i += 1) {
var member = this.storeList.getAt(i);
bodyList.push(member);
/*
var BLNO = member.data.BLNO;
var PROJECTNO = member.data.PROJECTNO;
if (BLNO == ''||PROJECTNO == '') {
Ext.Msg.show({ title: '警告',
msg: '项目单号和项目编码均不允许为空,请修改后再保存',
icon: Ext.Msg.ERROR, buttons: Ext.Msg.OK
});
return;
}*/
};
var jsonBody = ConvertRecordsToJson(bodyList);
var jsonDelBody = ConvertRecordsToJsonAll(this.bodyDel);
if (jsonBody == '' && jsonDelBody == '') {
return;
}
Ext.Msg.wait('正在保存数据, 请稍侯..');
Ext.Ajax.request({
waitMsg: '正在保存数据...',
url: '/TruckMng/CityDistance/Save',
scope: this,
params: {
ProjectBody: jsonBody,
ProjectDelBody: jsonDelBody
},
callback: function (options, success, response) {
if (success) {
Ext.MessageBox.hide();
var jsonresult = Ext.JSON.decode(response.responseText);
if (jsonresult.Success) {
//alert("保存成功");
var returnData = jsonresult.Data;
this.storeList.commitChanges();
} 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');
}
});
}, gridAfterEdit: function (editor, e, eOpts) {
}
});