/**
 * 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