/**
* Area.js
* 行政区域划分界面
* emial: hanzhengyi@chinausky.com
* create: 2018-12-24
*/
Ext.Loader.setConfig({
enabled: true
});
Ext.Loader.setPath('Ext.ux', '../../res/extjs/examples/ux');
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.ux.RowExpander',
'Ext.selection.CheckboxModel'
]);
var sm = Ext.create('Ext.selection.CheckboxModel');
Ext.define('Area',{
extend: 'Ext.data.Model',
fields: [
{ name:'I_ORDER_IDX', type:'int' },
{ name:'V_AREA_ID', type:'string' },
{ name:'V_AREA_NAME', type:'string' },
{ name:'V_PARENT_ID', type:'string' },
{ name:'E_LEVEL', type:'string' },
{ name:'V_CITYCODE', type:'string' },
{ name:'V_ZIPCODE', type:'string' },
{ name:'V_MERGERNAME', type:'string' },
{ name:'V_PINYIN', type:'string' },
{ name:'I_VERSION', type:'int' },
{ name:'D_STORETIME', type:'string' }
]
});
Ext.onReady(function(){
var baseUrl = document.getElementById('basePath').value;
var theme = document.getElementById('theme').value;
var chkIcon = '
'
var unchkIcon = '
'
var countPerPage = 20;
var maxHeight = 10000;
var chkBoolean = function(flag) {
if(flag)
return chkIcon;
return unchkIcon;
}
var clear_append_form = function (){
Ext.getCmp('fa_V_AREA_ID').setValue("");
Ext.getCmp('fa_V_AREA_NAME').setValue("");
Ext.getCmp('fa_V_PARENT_ID').setValue("");
Ext.getCmp('fa_V_CITYCODE').setValue("");
Ext.getCmp('fa_V_ZIPCODE').setValue("");
Ext.getCmp('fa_V_MERGERNAME').setValue("");
Ext.getCmp('fa_V_PINYIN').setValue("");
Ext.getCmp('fa_V_AREA_SHORTNAME').setValue("");
Ext.getCmp('fa_E_LEVEL').setValue(0);
Ext.getCmp('fa_V_COMMENT').setValue("新增行政区域");
Ext.getCmp('AreaListPanel').getStore().reload();
}
var states2 = Ext.create('Ext.data.Store', {
fields: ['status', 'name'],
data : [
{"status": "国家", "name":"国家"},
{"status": "省、直辖市、自治区、特别行政区", "name":"省、直辖市、自治区、特别行政区"},
{"status": "地区、市、自治州、盟", "name":"地区、市、自治州、盟"},
{"status": "县、市辖区、县级市、旗", "name":"县、市辖区、县级市、旗"},
]
});
var myStore = Ext.create('Ext.data.Store', {
model: 'Area',
pageSize: countPerPage,
proxy: {
type: 'ajax',
url: baseUrl+'iot/area/getList',
reader: {
type: 'json',
root: 'RESULT',
totalProperty: 'totalCount'
}
},
remoteSort: true
});
var AppendForm = Ext.create('Ext.form.Panel', {
id: 'AreaAppendForm',
labelWidth: 55,
url: baseUrl+'iot/area/append',
defaultType: 'textfield',
bodyPadding: 15,
items: [{
fieldLabel:'行政区域ID',
id: 'fa_V_AREA_ID',
name: 'V_AREA_ID',
maxLength: 8,
maxLengthText:'长度不得超出{0}',
anchor:'50%'
},{
fieldLabel:'行政区域名称',
id: 'fa_V_AREA_NAME',
name:'V_AREA_NAME',
maxLength:20,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'上级行政区域ID',
id: 'fa_V_PARENT_ID',
name: 'V_PARENT_ID',
maxLength: 7,
maxLengthText:'长度不得超出{0}',
anchor:'50%'
},{
fieldLabel:'电话区号',
id: 'fa_V_CITYCODE',
name:'V_CITYCODE',
maxLength: 12,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'邮政编码',
id: 'fa_V_ZIPCODE',
name:'V_ZIPCODE',
maxLength: 12,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'组合名称',
id: 'fa_V_MERGERNAME',
name:'V_MERGERNAME',
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'拼音',
id: 'fa_V_PINYIN',
name:'V_PINYIN',
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'行政区域简称',
id: 'fa_V_AREA_SHORTNAME',
name:'V_AREA_SHORTNAME',
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'行政区域级别',
id:'fa_E_LEVEL',
name:'E_LEVEL',
xtype:'combo',
store:states2,
displayField : 'name',
valueField : 'status',
editable : false,
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'新增行政区域说明',
id: 'fa_V_COMMENT',
name:'V_COMMENT',
xtype: 'textareafield',
maxLength: 250,
maxLengthText:'长度不得超出{0}',
anchor:'100%',
value:'新增行政区域'
},{
id:'fa_queryJson',
name:'queryJson',
hidden:true
}],
buttons: [{
text: '提交',
iconCls:'ok_btn',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
var query = new Object();
query.V_AREA_ID = Ext.getCmp('fa_V_AREA_ID').getValue();
query.V_AREA_NAME = Ext.getCmp('fa_V_AREA_NAME').getValue();
query.V_PARENT_ID = Ext.getCmp('fa_V_PARENT_ID').getValue();
query.V_CITYCODE = Ext.getCmp('fa_V_CITYCODE').getValue();
query.V_ZIPCODE = Ext.getCmp('fa_V_ZIPCODE').getValue();
query.V_MERGERNAME = Ext.getCmp('fa_V_MERGERNAME').getValue();
query.V_PINYIN = Ext.getCmp('fa_V_PINYIN').getValue();
query.V_AREA_SHORTNAME = Ext.getCmp('fa_V_AREA_SHORTNAME').getValue();
if(Ext.getCmp('fa_E_LEVEL').getValue()=='国家'){
query.E_LEVEL=0;
}
if(Ext.getCmp('fa_E_LEVEL').getValue()=='省、直辖市、自治区、特别行政区'){
query.E_LEVEL=1;
}
if(Ext.getCmp('fa_E_LEVEL').getValue()=='地区、市、自治州、盟'){
query.E_LEVEL=2;
}
if(Ext.getCmp('fa_E_LEVEL').getValue()=='县、市辖区、县级市、旗'){
query.E_LEVEL=3;
}
query.V_COMMENT = Ext.getCmp('fa_V_COMMENT').getValue();
query.UQ_ADMIN_ID = '00000000-000000-000000-000000';
var jsonstr = Ext.JSON.encode(query);
Ext.getCmp('fa_queryJson').setValue(jsonstr);
form.submit({
method:'post',
success: function(form, action) {
Ext.Msg.alert('操作成功', '新增行政区域已保存', function(btn,txt){
clear_append_form();
});
},
failure: function(form, action) {
Ext.Msg.alert('操作失败', action.Msg , function(btn,txt){
clear_append_form();
});
}
});
}
}
},{
text: '关闭',
iconCls: 'cancel_btn',
handler: function() {
this.up('window').hide();
}
}]
});
var appendwin = function(){
Ext.create('Ext.window.Window', {
title: '新增行政区域',
height: 400,
width: 400,
layout: 'fit',
items: AppendForm,
closeAction: 'hide'
}).show();
}
var clear_filter_form = function(){
Ext.getCmp('ff_V_AREA_NAME').setValue("");
Ext.getCmp('ff_V_PARENT_ID').setValue("");
Ext.getCmp('ff_V_ZIPCODE').setValue("");
Ext.getCmp('ff_V_PINYIN').setValue("");
Ext.getCmp('ff_E_LEVEL').setValue(0);
}
var states3 = Ext.create('Ext.data.Store', {
fields: ['status', 'name'],
data : [
{"status": "8", "name":"不选"},
{"status": "国家", "name":"国家"},
{"status": "省、直辖市、自治区、特别行政区", "name":"省、直辖市、自治区、特别行政区"},
{"status": "地区、市、自治州、盟", "name":"地区、市、自治州、盟"},
{"status": "县、市辖区、县级市、旗", "name":"县、市辖区、县级市、旗"},
]
});
var FilterForm = Ext.create('Ext.form.Panel', {
id: 'AreaFilterForm',
labelWidth: 55,
defaultType: 'textfield',
bodyPadding: 15,
items: [{
fieldLabel:'行政区域名称',
id: 'ff_V_AREA_NAME',
name:'V_AREA_NAME',
maxLength:20,
maxLengthText:'长度不得超出{0}',
anchor:'75%',
value:document.getElementById('myAct').value
},{
fieldLabel:'上级区域ID',
id: 'ff_V_PARENT_ID',
name: 'V_PARENT_ID',
maxLength: 7,
maxLengthText:'长度不得超出{0}',
anchor:'75%',
value:document.getElementById('loginName').value
},{
fieldLabel:'邮政编码',
id: 'ff_V_ZIPCODE',
name: 'V_ZIPCODE',
maxLength: 7,
maxLengthText:'长度不得超出{0}',
anchor:'75%',
value:document.getElementById('zipCode').value
},{
fieldLabel:'拼音',
id: 'ff_V_PINYIN',
name: 'V_PINYIN',
maxLength: 7,
maxLengthText:'长度不得超出{0}',
anchor:'75%',
value:document.getElementById('mergerName').value
},{
fieldLabel:'行政区域级别',
id:'ff_E_LEVEL',
name:'E_LEVEL',
xtype:'combo',
store:states3,
displayField : 'name',
valueField : 'status',
editable : false,
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%',
value:document.getElementById('level').value
},{
id:'ff_queryJson',
name:'queryJson',
hidden:true
}],
buttons: [{
text: '提交',
iconCls:'ok_btn',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
var query = new Object();
if(Ext.getCmp('ff_V_AREA_NAME').getValue().length>0)
query.V_AREA_NAME = Ext.getCmp('ff_V_AREA_NAME').getValue();
if(Ext.getCmp('ff_V_PARENT_ID').getValue().length>0)
query.V_PARENT_ID = Ext.getCmp('ff_V_PARENT_ID').getValue();
if(Ext.getCmp('ff_V_ZIPCODE').getValue().length>0)
query.V_ZIPCODE = Ext.getCmp('ff_V_ZIPCODE').getValue();
if(Ext.getCmp('ff_V_PINYIN').getValue().length>0)
query.V_PINYIN = Ext.getCmp('ff_V_PINYIN').getValue();
if(Ext.getCmp('ff_E_LEVEL').getValue().length>0)
if(Ext.getCmp('ff_E_LEVEL').getValue()=='国家'){
query.E_LEVEL=0;
}
if(Ext.getCmp('ff_E_LEVEL').getValue()=='省、直辖市、自治区、特别行政区'){
query.E_LEVEL=1;
}
if(Ext.getCmp('ff_E_LEVEL').getValue()=='地区、市、自治州、盟'){
query.E_LEVEL=2;
}
if(Ext.getCmp('ff_E_LEVEL').getValue()=='县、市辖区、县级市、旗'){
query.E_LEVEL=3;
}
var jsonstr = Ext.JSON.encode(query);
myStore.getProxy().extraParams = {
queryJson : jsonstr
};
Ext.getCmp('AreaListPageToolbar').moveFirst();
Ext.getCmp('myAct').setValue(query.V_AREA_NAME);
Ext.getCmp('loginName').setValue(query.V_PARENT_ID);
Ext.getCmp('zipCode').setValue(query.V_ZIPCODE);
Ext.getCmp('mergerName').setValue(query.V_PINYIN);
Ext.getCmp('level').setValue(query.E_LEVEL);
clear_filter_form();
this.up('window').hide();
}
}
},{
text: '关闭',
iconCls: 'cancel_btn',
handler: function() {
this.up('window').hide();
}
}]
});
var filterwin = function() {
Ext.create('Ext.window.Window',{
id: 'AreaFilterWin',
title: '行政区域筛选',
height: 300,
width: 400,
layout: 'fit',
items: FilterForm,
closeAction: 'hide'
}).show();
}
var clear_modify_form = function (){
Ext.getCmp('fm_V_AREA_NAME').setValue("");
Ext.getCmp('fm_V_PARENT_ID').setValue("");
Ext.getCmp('fm_V_CITYCODE').setValue("");
Ext.getCmp('fm_V_ZIPCODE').setValue("");
Ext.getCmp('fm_V_MERGERNAME').setValue("");
Ext.getCmp('fm_V_PINYIN').setValue("");
Ext.getCmp('fm_E_LEVEL').setValue(0);
Ext.getCmp('fm_V_COMMENT').setValue("修改行政区域");
Ext.getCmp('AreaListPanel').getStore().reload();
}
var ModifyForm = Ext.create('Ext.form.Panel', {
id: 'AreaEditForm',
labelWidth: 55,
url: baseUrl+'iot/area/update',
defaultType: 'textfield',
bodyPadding: 15,
items: [{
fieldLabel:'行政区域名称',
id: 'fm_V_AREA_NAME',
name:'V_AREA_NAME',
maxLength:20,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'上级行政区域ID',
id: 'fm_V_PARENT_ID',
name: 'V_PARENT_ID',
maxLength: 7,
maxLengthText:'长度不得超出{0}',
anchor:'50%'
},{
fieldLabel:'电话区号',
id: 'fm_V_CITYCODE',
name:'V_CITYCODE',
maxLength: 12,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'邮政编码',
id: 'fm_V_ZIPCODE',
name:'V_ZIPCODE',
maxLength: 12,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'组合名称',
id: 'fm_V_MERGERNAME',
name:'V_MERGERNAME',
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'拼音',
id: 'fm_V_PINYIN',
name:'V_PINYIN',
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'行政区域级别',
id:'fm_E_LEVEL',
name:'E_LEVEL',
xtype:'combo',
store:states2,
displayField : 'name',
valueField : 'status',
editable : false,
maxLength: 30,
maxLengthText:'长度不得超出{0}',
anchor:'75%'
},{
fieldLabel:'修改行政区域说明',
id: 'fm_V_COMMENT',
name:'V_COMMENT',
xtype: 'textareafield',
maxLength: 250,
maxLengthText:'长度不得超出{0}',
anchor:'100%',
value:'修改行政区域'
},{
id: 'fm_V_AREA_ID',
name:'V_AREA_ID',
hidden:true
},{
id:'fm_queryJson',
name:'queryJson',
hidden:true
}],
buttons: [{
text: '修改',
iconCls:'ok_btn',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
var query = new Object();
query.V_AREA_ID = Ext.getCmp('fm_V_AREA_ID').getValue();
query.V_AREA_NAME = Ext.getCmp('fm_V_AREA_NAME').getValue();
query.V_PARENT_ID = Ext.getCmp('fm_V_PARENT_ID').getValue();
query.V_CITYCODE = Ext.getCmp('fm_V_CITYCODE').getValue();
query.V_ZIPCODE = Ext.getCmp('fm_V_ZIPCODE').getValue();
query.V_MERGERNAME = Ext.getCmp('fm_V_MERGERNAME').getValue();
query.V_PINYIN = Ext.getCmp('fm_V_PINYIN').getValue();
if(Ext.getCmp('fm_E_LEVEL').getValue()=='国家'){
query.E_LEVEL=0;
}
if(Ext.getCmp('fm_E_LEVEL').getValue()=='省、直辖市、自治区、特别行政区'){
query.E_LEVEL=1;
}
if(Ext.getCmp('fm_E_LEVEL').getValue()=='地区、市、自治州、盟'){
query.E_LEVEL=2;
}
if(Ext.getCmp('fm_E_LEVEL').getValue()=='县、市辖区、县级市、旗'){
query.E_LEVEL=3;
}
query.V_COMMENT = Ext.getCmp('fm_V_COMMENT').getValue();
query.UQ_ADMIN_ID = '00000000-000000-000000-000000';
var jsonstr = Ext.JSON.encode(query);
Ext.getCmp('fm_queryJson').setValue(jsonstr);
form.submit({
method:'post',
success: function(form, action) {
Ext.Msg.alert('操作成功', '行政区域已修改', function(btn,txt){
clear_modify_form();
});
},
failure: function(form, action) {
Ext.Msg.alert('操作失败', action.Msg , function(btn,txt){
clear_modify_form();
});
}
});
this.up('window').hide();
}
}
},{
text: '关闭',
iconCls: 'cancel_btn',
handler: function() {
this.up('window').hide();
}
}]
});
var modifywin = function(){
Ext.create('Ext.window.Window', {
title: '修改行政区域',
height: 400,
width: 400,
layout: 'fit',
items: ModifyForm,
closeAction: 'hide'
}).show();
}
var del_sm = function() {
if(sm.getCount()==1){
var selected = sm.getSelection( );
var query = new Object();
var list = new Array();
var o = new Object();
o.V_AREA_ID = selected[0].raw.V_AREA_ID;
list.push(o);
query.Area_LIST = list;
var jsonstr= Ext.JSON.encode(query);
Ext.MessageBox.confirm('注销行政区划','是否注销 '+selected[0].raw.V_AREA_NAME+' 行政区划?',function(btn){
if(btn=='yes'){
Ext.Ajax.request( {
timeout : 3000000,
url: baseUrl+'iot/area/delete',
params : 'queryJson='+ jsonstr,
success: function(resp,opts){
myStore.reload();
}
});
}
},this);
}else{
if(sm.getCount()>1){
var query = new Object();
var list = new Array();
for(var i=0;i