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