楼主前段时间写了一个extjs4.0版本的mvc分层代码,这里记录一下备查
文件层次结构:
1、LtlSieveOrderApp.js 代码如下:
Ext.Loader.setConfig({
enabled : true,
disableCaching : false
});
Ext.application({
name : 'ltlsieveorder',
controllers : ['LtlSieveOrderController'],
appFolder : '../scripts/ltlsieveorder',
//jsp的所有js文件加载完成以后会执行此方法
launch : function() {
// Ext.QuickTips.init();
var panel = Ext.create('Ext.panel.Panel',{
cls : "panelContentNToolbar",
bodyCls : 'panelContentNToolbar-body',
layout : 'column',
frame : true,
items : [{
xtype : 'ltlsieveorder_view_ltlsieveorderform',
columnWidth : 1
},{
xtype : 'ltlsieveorder_view_ltlsieveordergrid',
columnWidth : 1
},{
xtype : 'panel',
layout : 'column',
columnWidth : 1,
items : [{
xtype : 'ltlsieveorder_view_ltlsieveordertab',
columnWidth : 0.5
},{
xtype : 'ltlsieveorder_view_ltlsieveorderupdateform',
columnWidth : 0.5
}]
}]
});
Ext.getCmp('T_ltlsieveorder-ltlsieveorder').add(panel);
}
});
2.controller\LtlSieveOrderController.js
/**
* ltlsieveorder 常量定义
*/
(function() {
ltlsieveorder.CONST = (function(){
var _obj = {};
_obj.IGNORE = ['sieveStatus', 'accept', 'orderSource'];// 全部'ALL'忽略
_obj.ENTITY = 'ltlSieveOrderVo.entity.';
_obj.ALL = 'ALL';
_obj.ARR = ['arriveProvince', 'arriveCity', 'arriveArea',
'arriveAddress', 'receivingtoPoint'];
_obj.ARR0 = ['beginDate', 'endDate'];
_obj.ARR1 = ['orderNumber'];
_obj.ARR2 = ['orderSource', 'city', 'arriveArea', 'sieveStatus','accept'];
_obj.STATUS_UNSIEVE = 'STATUS_UNSIEVE';
_obj.SIEVESTATUS = 'STATUS_SIEVE';
_obj.SIEVE_Y = 'SIEVE_Y';
_obj.SIEVE_N = 'SIEVE_N';
_obj.TABUPDATEFORM = ['arriveProvince','arriveCity','arriveArea'];
return _obj;
})();
})();
Ext.define('ltlsieveorder.controller.LtlSieveOrderController',{
extend : 'Ext.app.Controller',
models : ['LtlSieveOrderModel'],
views : ['LtlSieveOrderForm','LtlSieveOrderGrid','LtlSieveOrderTab','LtlSieveOrderUpdateForm'],
stores : ['LtlSieveOrderStore'],
refs : [{
//form
ref : 'searchForm',
selector : '#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveorderform'
},{
//grid
ref : 'searchGrid',
selector : '#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveordergrid'
},{
//tab 下面 dataForm
ref : 'dataForm',
selector : '#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveordertab form'
},{
//updateForm
ref : 'updateForm',
selector : '#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveorderupdateform'
}],
init : function() {
this.control ({
//查询事件
'#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveorderform button[name = search]':{
click : this.queryRecord
},
//重置事件
'#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveorderform button[name = reset]' : {
click : this.resetForm
},
//grid选中事件
'#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveordergrid' : {
select : this.selectFn
},
//承运 点击事件
'#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveorderupdateform button[name = accept]' : {
click : this.acceptFn
},
//拒绝 点击事件
'#T_ltlsieveorder-ltlsieveorder ltlsieveorder_view_ltlsieveorderupdateform button[name = refuse]' : {
click : this.refuseFn
}
});
},
onLaunch : function (){
var form = this.getSearchForm().getForm(),
grid = this.getSearchGrid(),
update = this.getUpdateForm(),
receivingtoPoint = update.down('textfield[name=receivingtoPoint]');//营业部
this.setDate(form);//设置创建时间
// 如果 '营业部' 为空,'承运' 按钮 置灰事件
receivingtoPoint.on('change',this.changeFn,this);
// 为grid的store添加beforeload事件,绑定form表单数据
grid.store.on('beforeload', this.beforeloadFn, this);
// 为grid的store添加load事件,给 订单信息 tab 添加数据
grid.store.on('load', this.loadFn, this);
grid.store.loadPage(1);//加载数据
},
/**
* 如果 '营业部' 为空,'承运' 按钮 不能点击
* @param {} field
* @param {} newValue
* @param {} oldValue
* @param {} eOpts
*/
changeFn : function(field, newValue, oldValue, eOpts){
var update = this.getUpdateForm(),
accept = update.down('button[name=accept]');//承运 按钮
Ext.isEmpty(newValue)?(accept.disable(true)):(accept.enable(true));
},
/**
* @param {} store
* @param {} records
* @param {} successful
* @param {} eOpts
*/
loadFn : function(store, records, successful, eOpts){
var dataForm = this.getDataForm().getForm(),
updateForm = this.getUpdateForm().getForm();
dataForm.reset();
updateForm.reset();
if(records.length > 0){
//选中第一行
this.getSearchGrid().getSelectionModel().select(0);
}
},
/**
* @param {} rowModel
* @param {} record
* @param {} index
* @param {} eOpts
*/
selectFn : function(rowModel, record, index, eOpts){
var dataForm = this.getDataForm().getForm(),
updateForm = this.getUpdateForm().getForm();
dataForm.loadRecord(record);
updateForm.loadRecord(record);
/**
* 单独为 '到达省份','到达城市','到达区县' 设置值
*/
var arrf = ltlsieveorder.CONST.TABUPDATEFORM;
for (var key in arrf){
// 为 订单信息 tab 下面form 设置 3个数据 设置 rawValue
dataForm.findField(arrf[key]).setRawValue(record.get(arrf[key]+'Name'));
// 为 updateForm 设置 3个数据
var field = updateForm.findField(arrf[key]),
store = field.store;
store.removeAll();// 删除所有数据
store.add({
'code' : record.data[arrf[key]],
'name' : record.data[arrf[key] + 'Name']
});
updateForm.loadRecord(record);
}
},
/**
* @param {} store
* @param {} operation
* @param {} eOpts
*/
beforeloadFn : function(store, operation, eOpts){
var par = {},
form = this.getSearchForm().getForm(),
grid = this.getSearchGrid(),
values = form.getFieldValues(),
arr = ltlsieveorder.CONST.IGNORE,//全部'ALL'忽略
sr = ltlsieveorder.CONST.ENTITY;
//每次点击查询,校验条件通过修改form的params值
if(!form.isValid()){
var view = grid.getView();
view.loadMask.hide();
return false;
}
for(var key in values){
//如果循环变量值为 空 || (('筛单状态' 或 '是否承运') && 循环变量值为 全部'ALL') 则不取这个查询条件
if(Ext.isEmpty(values[key]) ||
(arr.indexOf(key) >= 0 && values[key] === ltlsieveorder.CONST.ALL)){
continue;
}
par[sr + key] = Ext.String.trim(values[key]);
}
this.doPriority(par,sr);
Ext.apply(operation, {
params : par
});
},
/**
* 查询优先级:订单号>订单来源=出发城市=到达城市=筛选状态=是否承运;
* 订单来源和出发城市查询条件受创建时间限制;订单号具有排他性查询权限
* @param {} par
* @param {} sr
*/
doPriority : function(par,sr){
var arr0 = ltlsieveorder.CONST.ARR0,
arr1 = ltlsieveorder.CONST.ARR1,
arr2 = ltlsieveorder.CONST.ARR2,
contains = Ext.Array.contains,
destroy = Ext.destroyMembers,
fn = function(item, index, self){
destroy(par,sr + item);
};
for(var key in par){
var a = key.split('.'),
str = a[a.length - 1];
// 查询参数包含arr1,删除其他参数
if(contains(arr1,str)){
Ext.each(arr0,fn);
Ext.each(arr2,fn);
break;
}
}
},
/**
* @param {} form
* 设置创建时间
* 设置'时间'为 当天00:00:00 到 当天23:59:59
*/
setDate : function(form){
var d1 = new Date();
d1.setHours(0);//设置hh:00
d1.setMinutes(0);//设置mm:00
d1.setSeconds(0);//设置ss:00
form.findField('beginDate').setValue(Ext.util.Format.date(d1, "Y-m-d H:i:s"));
d1.setHours(23);//设置hh:23
d1.setMinutes(59);//设置mm:59
d1.setSeconds(59);//设置ss:59
form.findField('endDate').setValue(Ext.util.Format.date(d1, "Y-m-d H:i:s"));
},
/**
* 重置表单
*/
resetForm : function() {
var form = this.getSearchForm().getForm();
form.reset();
this.setDate(form);//设置创建时间
},
/**
* 查询结果
*/
queryRecord : function () {
this.getSearchGrid().store.loadPage(1);
},
/**
* 承运 点击事件
*/
acceptFn : function () {
var me = this,
updateForm = me.getUpdateForm().getForm(),
vals = updateForm.getFieldValues(),
grid = me.getSearchGrid();
var select = grid.getSelectionModel().getSelection()[0];//获取选中的一行
if(!updateForm.isValid()){
return;
}
if(me.isSieve(select)){
return;
}
var par = {ltlSieveOrderVo:{entity:{}}};//构建传递的参数 json对象
par.ltlSieveOrderVo.entity.id = select.data.id;
//需要修改的筛单信息
var arr = ltlsieveorder.CONST.ARR;
for(var key in arr){
par.ltlSieveOrderVo.entity[arr[key]] = vals[arr[key]];
}
par.ltlSieveOrderVo.entity["sieveStatus"] = ltlsieveorder.CONST.SIEVESTATUS;// 筛选状态变为"已筛选"
par.ltlSieveOrderVo.entity["accept"] = ltlsieveorder.CONST.SIEVE_Y;// 订单的是否承运状态变为"可承运"
me.ajaxFn(par,grid);
},
/**
* 拒绝 点击事件
*/
refuseFn : function () {
var me = this,
dataForm = me.getDataForm().getForm(),
updateForm = me.getUpdateForm().getForm(),
grid = me.getSearchGrid();
var select = grid.getSelectionModel().getSelection()[0];//获取选中的一行
if(me.isSieve(select)){
return;
}
var par = {ltlSieveOrderVo:{entity:{}}};//构建传递的参数 json对象
par.ltlSieveOrderVo.entity.id = select.data.id;
par.ltlSieveOrderVo.entity["sieveStatus"] = ltlsieveorder.CONST.SIEVESTATUS;// 筛选状态变为"已筛选"
par.ltlSieveOrderVo.entity["accept"] = ltlsieveorder.CONST.SIEVE_N;// 订单的是否承运状态变为"已拒绝"
Ext.Msg.confirm('提示', '确认拒绝?', function(btn) {
if (btn == 'yes') {
me.ajaxFn(par,grid);
}
});
},
/**
* 发送后台请求 更新数据
* @param {} par
* @param {} grid
*/
ajaxFn : function(par,grid){
Ext.Ajax.request({
url : '../ltlsieveorder/update.action',
jsonData : par,
success : function(response){
var json = Ext.decode(response.responseText);
if(json.success){
Ext.ux.Toast.msg('提示','保存成功');
grid.store.loadPage(1);
}else{
Ext.Msg.alert('失败',json.message);
}
},
exception : function(response){
var json = Ext.decode(response.responseText);
Ext.Msg.alert('失败',json.message);
}
});
},
/**
* 如果状态“已筛选”“超时退单” 则提示“该订单已处理请勿重复筛单!”;
* @param {} select
* @return {Boolean}
*/
isSieve : function(select){
if(this.sieveStatusFn(select)){
Ext.Msg.alert('提示','该订单已处理请勿重复筛单!');
return true;
}
},
sieveStatusFn : function(select){
return select.data.sieveStatus !== ltlsieveorder.CONST.STATUS_UNSIEVE;
}
});
3、\model\LtlSieveOrderModel.js
Ext.define('ltlsieveorder.model.LtlSieveOrderModel', {
extend : 'Ext.data.Model',
fields : [{
name : 'accept' // 是否承运
}, {
name : 'accountName' // 开户名
}, {
name : 'address' // 出发详细地址
}, {
name : 'addressComments' // 出发地址备注
}, {
name : 'area' // 出发区
}, {
name : 'arriveaddressComments' // 到达地址备注
}, {
name : 'arrivetown' // 收货联系人乡镇
}, {
name : 'arriveAddress' // 到达详细地址
}, {
name : 'arriveArea' // 到达区县
}, {
name : 'arriveCity' // 到达城市
}, {
name : 'arriveCompanyname' // 收货人公司
}, {
name : 'arriveMobbile' // 收货人手机号
}, {
name : 'arriveName' // 收货人
}, {
name : 'arrivePhone' // 收货人电话
}, {
name : 'arrivePostcode' // 发货人邮编
}, {
name : 'arriveProvince' // 到达省份
}, {
name : 'bsNetworkno' // 发货部门编号
}, {
name : 'channelCustid' // 渠道客户ID
}, {
name : 'channelNumber' // 渠道订单号
}, {
name : 'city' // 出发城市
}, {
name : 'codtype' // 代收货款类型
}, {
name : 'contactmanId' // 联系人id
}, {
name : 'contactMobile' // 联系人电话
}, {
name : 'contactName' // 联系人名称
}, {
name : 'contactPhone' // 联系人手机
}, {
name : 'contactPostcode' // 发货人邮编
}, {
name : 'contactTown' // 发货人乡镇街道
}, {
name : 'couponNumber' // 优惠券
}, {
name : 'createTime' // 创建时间
}, {
name : 'custNumeber' // 发货客户编码
}, {
name : 'deliveryMode' // 提货方式
}, {
name : 'dshk' // 代收货款
}, {
name : 'goodsName' // 货物名称
}, {
name : 'goodsNumber' // 货物件数
}, {
name : 'id' // ID
}, {
name : 'ifdshk' // 是否有代收
}, {
name : 'ifelecbillBigcust' // 是否是电子运单大客户
}, {
name : 'ifpayarive' // 是否到付
}, {
name : 'ifsieveOrder' // 是否需要人工筛选
}, {
name : 'insuredAmount' // 保价金额
}, {
name : 'isreceiveGoods' // 是否接货
}, {
name : 'issendMessage' // 是否发送短信
}, {
name : 'isPartialLine' // 是否偏线
}, {
name : 'modifyTime' // 修改时间
}, {
name : 'onlineName' // 官网用户名
}, {
name : 'operatePerson' // 操作人
}, {
name : 'orderNumber' // 订单号
}, {
name : 'orderSource' // 订单来源
}, {
name : 'orderType' // 订单类型
}, {
name : 'packing' // 包装材料
}, {
name : 'paymentOrgcode' // 费用承担部门
}, {
name : 'paymentType' // 付款方式
}, {
name : 'province' // 出发省
}, {
name : 'receivingtoPoint' // 到达网点id
}, {
name : 'reciveLoanAccount' // 代收账号
}, {
name : 'remark' // 订单备注
}, {
name : 'returnbillType' // 返回签收单类型
}, {
name : 'reviceMoneyAmount' // 代收金额
}, {
name : 'senderCode' // 发货人工号
}, {
name : 'senderCompanyName' // 发货人公司
}, {
name : 'shipperCompanyAddress' // 打印用发货地址
}, {
name : 'shipperCompanyName' // 打印用发货人姓名
}, {
name : 'shipperCompanyPhone' // 打印用发货人联系方式
}, {
name : 'shipperId' // 发货客户ID
}, {
name : 'shipperName' // 发货客户名称
}, {
name : 'sieveMode' // 筛单模式 SIEVEORDER : 仅筛单; SIEVECREATEORDER : 筛单后下单; SIEVEORDER_MODE_NOSIEVE : 不筛单'
}, {
name : 'sieveStatus' // 筛选状态
}, {
name : 'special' // 特殊商品性质
}, {
name : 'stratStation' // 始发网点id
}, {
name : 'totalVolume' // 体积
}, {
name : 'totalWeight' // 总重量
}, {
name : 'transportMode' // 运输方式
}, {
name : 'transNote' // 备注
}, {
name : 'vistReceive' // 是否上门接货
}, {
name : 'waybillNumber' // 运单号
}, {
name : 'cityName' // 出发城市 name
}, {
name : 'arriveProvinceName' // 到达省份 name
}, {
name : 'arriveCityName' // 到达城市
}, {
name : 'arriveAreaName' // 到达区县
}]
});
4、\store\LtlSieveOrderStore.js
Ext.define('ltlsieveorder.store.LtlSieveOrderStore',{
extend : 'Ext.data.Store',
pageSize : '10',
model : 'ltlsieveorder.model.LtlSieveOrderModel',
autoLoad : false,
proxy : {
type : 'ajax',
actionMethods : 'POST',
url : '../ltlsieveorder/query.action',
reader : {
type :'json',
root : 'ltlSieveOrderVo.list',
totalProperty : 'totalCount'
}
}
});
5、\view
LtlSieveOrderForm.js
Ext.define('ltlsieveorder.view.LtlSieveOrderForm',{
extend : 'Ext.form.Panel',
layout : {
type : 'table',
columns : 4
},
collapsible : true, //可以收回
frame : true,
title : '零担人工筛单',
alias : 'widget.ltlsieveorder_view_ltlsieveorderform',
frame : true,
initComponent : function() {
var me = this;
me.items = me.getItems();
me.callParent();
},
defaults : {
margin : '15 -10 0 0',
labelAlign : 'right',
width : 250
},
getItems : function() {
return [{
xtype : 'textfield',
fieldLabel : '订单号',
name : 'orderNumber'
},{
xtype : 'dictcombo',
dictType : 'ORDER_SOURCE',
name : 'orderSource',
fieldLabel : '订单来源',
editable : true
},{
xtype : 'dictcombo',
dictType : 'SIEVEORDER_STATUS',
name : 'sieveStatus',
fieldLabel : '筛单状态',
editable : false,
value : 'STATUS_UNSIEVE'
},{
xtype : 'dictcombo',
dictType : 'SIEVEORDER_ACCEPT',
name : 'accept',
fieldLabel : '是否承运',
editable : false,
value : 'ALL'
},{
xtype : 'commondistrictselector',
districtType : 'CITY',
fieldLabel : '出发城市',
name : 'city'
},{
xtype : 'commondistrictselector',
districtType : 'DISTRICT_COUNTY',
fieldLabel : '到达区县',
name : 'arriveArea'
},{
fieldLabel : '创建时间',
xtype : 'rangedatefield',
width : 500,
dateType : 'my97datetimefield',
fromName : 'beginDate',
rangeFlag : ' ' +
'  '+'到'+': ',
toName : 'endDate',
colspan : 2,
editable : false,
disallowBlank : true,
dateRange : 30
}]
},
buttons:[{
text:'重置',
name:'reset'
},{
text:'查询',
cls: 'yellow_button',
name:'search'
}]
});
LtlSieveOrderGrid.js
Ext.define('ltlsieveorder.view.LtlSieveOrderGrid',{
extend : 'Ext.grid.Panel',
alias : ['widget.ltlsieveorder_view_ltlsieveordergrid'],
title : '零担人工筛单明细列表',
frame : true,
height: 380,
stripeRows : true, // 交替行效果
sortableColumns : false,
enableColumnHide : false,
enableColumnMove : false,
selType : "rowmodel", // 选择类型设置为:行选择
initComponent : function(){
var me = this;
me.store = me.getGridStore();
me.columns = me.getColumns();
me.bbar = me.getBbar();
me.selModel = me.getSelModel();
me.callParent();
},
getSelModel : function(){
//只能选择一行数据
return this.selModel || Ext.create('Ext.selection.CheckboxModel',{mode : 'SINGLE'});
},
getGridStore : function(){
return this.store || Ext.create('ltlsieveorder.store.LtlSieveOrderStore');
},
getColumns : function(){
return [{
xtype : 'rownumberer',
text : '序号',
width : 35,
align : 'center'
},{
xtype :'ellipsiscolumn',
header : '订单来源',
dataIndex : 'orderSource',
align : 'center',
renderer : function(val) {
return Ext.isEmpty(val) ? '' : Deppon.Dictionary.getDictNameByCode(
val.trim(),'ORDER_SOURCE');
}
},{
xtype:'ellipsiscolumn',
header : '订单号',
align : 'center',
width : 150,
dataIndex : 'orderNumber'
},{
xtype :'ellipsiscolumn',
header : '创建时间',
align : 'center',
width : 150,
dataIndex : 'createTime'
},{
header : '是否有代收',
dataIndex : 'ifdshk',
align : 'center',
renderer : function(val) {
return Ext.isEmpty(val) ? '' : Deppon.Dictionary.getDictNameByCode(
val.trim(),'IF_DSHK');
}
},{
header : '是否到付',
dataIndex : 'ifpayarive',
align : 'center',
renderer : function(val) {
return Ext.isEmpty(val) ? '' : Deppon.Dictionary.getDictNameByCode(
val.trim(),'IF_PAYARIVE');
}
},{
header : '提货方式',
dataIndex : 'deliveryMode',
align : 'center',
renderer : function(val) {
return Ext.isEmpty(val) ? '' : Deppon.Dictionary.getDictNameByCode(
val.trim(),'PICKUPGOODS_TYPE');
}
},{
xtype :'ellipsiscolumn',
header : '出发城市',
dataIndex : 'city',
align : 'center',
renderer : function(val, metaData, record, rowIndex, colIndex, store, view ) {
return Ext.isEmpty(val) ? '' : record.get('cityName');
}
},{
xtype :'ellipsiscolumn',
header : '到达省份',
dataIndex : 'arriveProvince',
align : 'center',
renderer : function(val, metaData, record, rowIndex, colIndex, store, view ) {
return Ext.isEmpty(val) ? '' : record.get('arriveProvinceName');
}
},{
xtype :'ellipsiscolumn',
header : '到达城市',
dataIndex : 'arriveCity',
align : 'center',
renderer : function(val, metaData, record, rowIndex, colIndex, store, view ) {
return Ext.isEmpty(val) ? '' : record.get('arriveCityName');
}
},{
xtype :'ellipsiscolumn',
header : '到达区县',
dataIndex : 'arriveArea',
align : 'center',
renderer : function(val, metaData, record, rowIndex, colIndex, store, view ) {
return Ext.isEmpty(val) ? '' : record.get('arriveAreaName');
}
},{
xtype :'ellipsiscolumn',
header : '到达详细地址',
align : 'center',
width : 200,
dataIndex : 'arriveAddress'
},{
header : '筛选状态',
dataIndex : 'sieveStatus',
align : 'center',
renderer : function(val) {
return Ext.isEmpty(val) ? '' : Deppon.Dictionary.getDictNameByCode(
val.trim(),'SIEVEORDER_STATUS');
}
},{
header : '是否承运',
dataIndex : 'accept',
align : 'center',
renderer : function(val) {
return Ext.isEmpty(val) ? '' : Deppon.Dictionary.getDictNameByCode(
val.trim(),'SIEVEORDER_ACCEPT');
}
}];
},
getBbar : function(){
return this.bbar || Ext.create('Deppon.StandardPaging', {
store : this.store
});
}
});
LtlSieveOrderTab.js
Ext.define('ltlsieveorder.view.LtlSieveOrderTab',{
extend : 'Ext.tab.Panel',
alias : 'widget.ltlsieveorder_view_ltlsieveordertab',
frame : true,
layout : 'fit',
items : [{
title : '订单信息',
xtype : 'panel',
items : [{
xtype : 'form',
layout : {
type : 'table',
columns : 2
},
defaults : {
margin : '15 -10 0 0',
labelAlign : 'right',
width : 250,
readOnly : true
},
items : [{
xtype : 'dictcombo',
dictType : 'ORDER_SOURCE',
name : 'orderSource',
fieldLabel : '订单来源'
},{
xtype : 'textfield',
fieldLabel : '订单号',
name : 'orderNumber'
},{
xtype : 'dictcombo',
dictType : 'IF_DSHK',
fieldLabel : '是否有代收',
name : 'ifdshk'
},{
xtype : 'dictcombo',
dictType : 'IF_PAYARIVE',
fieldLabel : '是否到付',
name : 'ifpayarive'
},{
xtype : 'textfield',
fieldLabel : '到达省份',
name : 'arriveProvince'
},{
xtype : 'textfield',
fieldLabel : '到达城市',
name : 'arriveCity'
},{
xtype : 'textfield',
fieldLabel : '到达区县',
name : 'arriveArea'
},{
xtype : 'dictcombo',
dictType : 'IS_PARTIAL_LINE',
fieldLabel : '是否偏线',
name : 'isPartialLine'
},{
xtype : 'textfield',
fieldLabel : '到达详细地址',
name : 'arriveAddress',
width : 490,
colspan : 2
},{
xtype : 'dictcombo',
dictType : 'PICKUPGOODS_TYPE',
fieldLabel : '提货方式',
name : 'deliveryMode'
}]
}]
}]
});
LtlSieveOrderUpdateForm.js
Ext.define('ltlsieveorder.view.LtlSieveOrderUpdateForm',{
extend : 'Ext.form.Panel',
layout : {
type : 'table',
columns : 2
},
alias : 'widget.ltlsieveorder_view_ltlsieveorderupdateform',
frame : true,
initComponent : function() {
var me = this;
me.items = me.getItems();
me.callParent();
},
defaults : {
margin : '15 -10 0 0',
labelAlign : 'right',
width : 250
},
getItems : function() {
return [{
/**
* Caution! 省市区镇选择器必须四个选择器 连续放在一起,不能分开
*/
xtype : 'commondistrictselector',
districtType : 'DISTRICT_PROVINCE',
fieldLabel : '到达省份',
name : 'arriveProvince',
allowBlank : false,
hasParent : false,//没有父级 选择器
hasChild : true//有子级 选择器
},{
xtype : 'commondistrictselector',
districtType : 'CITY',
fieldLabel : '到达城市',
name : 'arriveCity',
allowBlank : false,
hasParent : true,//有父级 选择器
hasChild : true//有子级 选择器
},{
xtype : 'commondistrictselector',
districtType : 'DISTRICT_COUNTY',
fieldLabel : '到达区县',
name : 'arriveArea',
allowBlank : false,
hasParent : true,//有父级 选择器
hasChild : false//没有子级 选择器
},{
xtype : 'commondistrictselector',
districtType : 'TOWN_STREET_AGENCY',
fieldLabel : '四级地址',
name : 'arriveStreet'//TODO 130140
},{
xtype : 'textfield',
colspan : 2,
fieldLabel : '详细地址',
width : 490,
name : 'arriveAddress'
},{
xtype : 'textfield',
fieldLabel : '营业部',
name : 'receivingtoPoint',
allowBlank : false,
readOnly : true
},{
xtype : 'textfield',
fieldLabel : '派送属性',
name : 'sendtype',
readOnly : true
},{
xtype : 'textarea',
colspan : 2,
fieldLabel : '派送区域描述',
name : 'sendDesc',
width : 490,
readOnly : true
}]
},
buttons : [{
text : '拒绝',
name : 'refuse'
},{
text : '承运',
cls : 'yellow_button',
name : 'accept'
}]
});